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