手頭上正好有STM32的開發(fā)板和ESP-12E模塊,想著控制個(gè)WS2812玩玩。到MCU開發(fā)的時(shí)候下載了生成的代碼發(fā)現(xiàn)是HAL庫(kù)的,無奈自己剛剛學(xué)習(xí)stm32,用的是標(biāo)準(zhǔn)庫(kù)這里參考了官方的移植MSP340教程并修改出適用于STM32標(biāo)準(zhǔn)庫(kù)的教程。
步驟1、下載好的代碼包是這樣的,需要把這兩個(gè)文件夾直接復(fù)制到自己工程的文件夾里面:
步驟2、添加到自己的工程組里面,并添加路徑:
步驟3、正題來了,現(xiàn)在開始移植工作,需要修改的文件分別如下:3.1、打開gizwits_product.h需要修改的地方如下,查看代碼行數(shù)可以快速找到)
3.2、打開gizwits_product.c,需要修改的地方如下:
下面刪除的幾個(gè)初始化函數(shù)很重要...必須自己寫好,要能正常使用
接下來是串口發(fā)送函數(shù),我用的是DMA+中斷發(fā)送接收的,修改成能發(fā)送數(shù)據(jù)的函數(shù)..建議先把串口功能調(diào)試好在填入調(diào)用
int32_t uartWrite(uint8_t *buf, uint32_t len)
{
uint32_t i = 0;
if(NULL == buf)
{
return -1;
}
for(i=0; i
{
//這里填入串口發(fā)送函數(shù)
TxBuff_esp8266[i]=*buf++;
/* if(i >=2 && buf[i] == 0xFF)
{
//這里填入串口發(fā)送函數(shù),發(fā)送0x55,意思是遇到0xFF后面要加0x55
//這地方折騰了很久才成功,官方的大神說要加上,但是我刪除了也可以用,求解釋
//官方說是要求加上的..我直接刪除了也能用,你們要是這里加了不行的話也刪掉試試
}*/
修改好了記得保存。
步驟4、接下來打開main.c文件添加自己的初始化代碼,并且調(diào)用gizwits的相關(guān)函數(shù)記得把這兩個(gè)頭文件包含進(jìn)去
#include "gizwits_product.h"
#include "common.h"
我的初始化函數(shù)是自己封裝的,比較簡(jiǎn)陋,反正功能能實(shí)現(xiàn)就行了步驟5、修改中斷函數(shù)
接下來就是編譯了,要是有錯(cuò)誤的地方看一下是不是外部函數(shù)調(diào)用的時(shí)候沒有包含進(jìn)函數(shù)所在的頭文件。步驟6、打開gizwits_product.c,找到gizwitsEventProcess的函數(shù),下面那里有你添加的數(shù)據(jù)點(diǎn),可以添加自己想要的功能。
舉個(gè)栗子我的是控制WS2812,直接在里面調(diào)用WS2812的亮燈函數(shù),把讀到的數(shù)據(jù)顏色數(shù)據(jù)填入就可以了
移植的步驟大概就是這么多,試了一下燒錄了進(jìn)去確實(shí)可以用app控制。還有很多功能沒有調(diào)試,剩下的功能要去參考其他大神的了。靜靜的做一名的伸手黨。
要是有什么錯(cuò)誤的地方請(qǐng)指正,我也是這兩天剛剛琢磨出來,希望能互相學(xué)習(xí)。誒,那個(gè),第一次寫教程,stm32也剛接觸沒多久,水平有限,有什么寫得不好或者錯(cuò)了的地方請(qǐng)告之改正。
-
mcu
+關(guān)注
關(guān)注
146文章
17831瀏覽量
360317 -
STM32
+關(guān)注
關(guān)注
2289文章
11011瀏覽量
362338
原文標(biāo)題:官方生成的MCU代碼(hal庫(kù))移植到標(biāo)準(zhǔn)庫(kù)的STM32教程
文章出處:【微信號(hào):IoTMaker,微信公眾號(hào):機(jī)智云開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基于STM32 HAL庫(kù)與標(biāo)準(zhǔn)庫(kù)的esp8266接入機(jī)智云方案(二)

STM32已經(jīng)用標(biāo)準(zhǔn)庫(kù)寫好的代碼,怎么導(dǎo)入RT THREAD?
求助,求STM32C011J4x STM32C011J6x的標(biāo)準(zhǔn)庫(kù)?
HAL庫(kù)和標(biāo)準(zhǔn)庫(kù)你會(huì)選擇哪種庫(kù)?
HAL庫(kù)在Arduino平臺(tái)上的使用
HAL庫(kù)和標(biāo)準(zhǔn)庫(kù)的區(qū)別 HAL庫(kù)與CMSIS的關(guān)系
HAL庫(kù)的函數(shù)調(diào)用示例
HAL庫(kù)在STM32開發(fā)中的重要性
如何快速入門HAL庫(kù)編程 HAL庫(kù)與裸機(jī)編程的比較
HAL庫(kù)在嵌入式系統(tǒng)中的應(yīng)用
第12章-ADC采集電壓和顯示 基于STM32的ADC—電壓采集(詳細(xì)講解+HAL庫(kù))

評(píng)論