沈陽中小企業(yè)網(wǎng)站制作站長(zhǎng)之家官網(wǎng)登錄入口
? ? ? ?本人長(zhǎng)期開發(fā)Linux、Windows上應(yīng)用軟件,一直以來MCU開發(fā)有所接觸,但較少(最近項(xiàng)目需要,小公司么,都得會(huì),被逼的),好在有STM32CubeMX這樣工具,貌似就是我想要的工具。
? ? ? ? 本次demo目標(biāo)立下:
? ? ? ? 1. 搭建或移植FreeRTOS到STM32上,畢竟對(duì)于長(zhǎng)期在Linux環(huán)境開發(fā)(雖然也號(hào)稱嵌入式),什么中斷、拉高拉低,一直來沒有搞的明明白白。有個(gè)RTOS會(huì)方便很多
? ? ? ? ?2. printf重定向到串口1,可以實(shí)現(xiàn)打印輸出
? ? ? ? ?3. 有個(gè)任務(wù):定期拉高LED,然后反轉(zhuǎn),比較方便的看看程序運(yùn)行情況。(在沒有屏幕的設(shè)備里,這個(gè)就好比串口輸出,很常用)
本次采用板子是 晉中的開發(fā)板,搜索了下(網(wǎng)上關(guān)于這塊介紹比較少,大部分是什么原子的),但對(duì)比了兩個(gè)品牌開發(fā)板的原理圖,大部分是一致的,因此很多情況下都是可以參考的,甚至復(fù)用吧!!
STM32CubeMX 端配置
打開STM32CubeMX軟件,首先要選擇芯片,晉中開發(fā)的是 STM32F407ZGT6
1. 配置RCC
CPU心臟起搏器選擇,大概意思選擇外部的方式:HSE、LSE也是
這個(gè)地方,如果要講究,就得看開發(fā)板原理圖,是不是這樣設(shè)計(jì)的
2. 第二步,我覺得應(yīng)該配置時(shí)鐘:
選擇?這個(gè)tab
然后配置參考如下圖(實(shí)際跟上一步有關(guān)系,都是HSE、LSE配置),芯片168MHz是正常的頻率,目前小白的水平,先不管功耗的問題,就是正常頻率去運(yùn)行。(注意那幾個(gè)選擇)
3. 配置點(diǎn)燈LED對(duì)應(yīng)GPIO
點(diǎn)燈是Output,看了下原理圖,開發(fā)板用與點(diǎn)燈是PF9、PF10
在這個(gè)圖上面,找到PF9:
然后,點(diǎn)擊對(duì)應(yīng)的"引腳"就可以設(shè)置屬性:主要是in 還是out,如果是右鍵的話,可以設(shè)置名稱之類的。
GPIO還有個(gè)點(diǎn),也要設(shè)置的。比如pull-up 還是 pull - down,要看原理圖(跟電源連接的,就是up)
到此為止,兩個(gè)點(diǎn)燈的GPIO已經(jīng)配置好了。
4. 配置SYS
系統(tǒng)一些調(diào)試信息,TIM1也很重要
5. 配置串口
板子的串口1是接在USB轉(zhuǎn)串口芯片上的,方便電腦側(cè)獲得輸出結(jié)果,因此,打算用串口1作為Printf輸出接口。如下圖,
大概意思:采用同步方式,然后勾選中斷。如果要DMA方式,還要DMA Settings進(jìn)行配置,不過我沒有成功(配置是可以配置,但不知道哪里錯(cuò)了,運(yùn)行不起來)
當(dāng)然波特率這些也是可以設(shè)置的,在Parameter Settings里面就可以根據(jù)實(shí)際需要設(shè)置。
6. 添加Freertos系統(tǒng)
到此為止,所有配置都可以了。
7. 配置project信息
選擇Project Manager - Project
然后在 Code Generator
最后一步,就是生成代碼,生成好之后可跳轉(zhuǎn)到Keil 這邊。
8. 在Keil碼代碼
9. 燒寫到板子