寫(xiě)在前面:
本文章為《ARM Cortex-M4裸機(jī)開(kāi)發(fā)篇》系列中的一篇,,全系列總計(jì)14篇。筆者使用的開(kāi)發(fā)平臺(tái)為華清遠(yuǎn)見(jiàn)FS-MP1A開(kāi)發(fā)板(STM32MP157開(kāi)發(fā)板),Cortex-M4裸機(jī)開(kāi)發(fā)篇除了講M4裸機(jī)開(kāi)發(fā)外,還會(huì)講解通過(guò)M4控制資源擴(kuò)展板上的各種傳感器執(zhí)行器模塊(包括空氣溫濕度傳感器、LED燈、數(shù)碼管、蜂鳴器、震動(dòng)馬達(dá)、按鍵中斷、風(fēng)扇等),本篇是M4控制資源擴(kuò)展板中的一篇。
資源擴(kuò)展板是FS-MP1A開(kāi)發(fā)板的擴(kuò)展模塊,主要包含了10余種助主流傳感器、執(zhí)行器件、總線控制器件,非常方便項(xiàng)目擴(kuò)展用??赏卣归_(kāi)發(fā)智慧家庭、智能醫(yī)療、智能安防、工業(yè)控制、圖像識(shí)別、環(huán)境檢測(cè)等方向的10個(gè)左右綜合項(xiàng)目,華清遠(yuǎn)見(jiàn)開(kāi)發(fā)板也將配套提供所有項(xiàng)目的說(shuō)明文檔、實(shí)驗(yàn)源碼、應(yīng)用程序等資料。
針對(duì)FS-MP1A開(kāi)發(fā)板,除了Cortex-M4裸機(jī)開(kāi)發(fā)篇外,還包括其他多系列教程,包括Cortex-A7開(kāi)發(fā)篇、FreeRTOS篇、Linux基礎(chǔ)及應(yīng)用開(kāi)發(fā)篇、Linux系統(tǒng)移植篇、Linux驅(qū)動(dòng)開(kāi)發(fā)篇、硬件設(shè)計(jì)篇、人工智能機(jī)器視覺(jué)篇、Qt應(yīng)用編程篇、Qt綜合項(xiàng)目實(shí)戰(zhàn)篇等。
資源擴(kuò)展板介紹
硬件介紹

資源擴(kuò)展板可開(kāi)發(fā)項(xiàng)目

Cortex-M4 開(kāi)發(fā)環(huán)境搭建
STM32CubeIDE是一個(gè)高級(jí)C / C ++開(kāi)發(fā)平臺(tái),具有用于STM32微控制器和微處理器的外設(shè)配置,代碼生成,代碼編譯和調(diào)試功能。它基于ECLIPSE?/ CDT框架和用于開(kāi)發(fā)的GCC工具鏈,以及用于調(diào)試的GDB。它允許集成數(shù)百個(gè)現(xiàn)有插件,這些插件可以完善ECLIPSE?IDE的功能。
主要特點(diǎn):
- 集成STM32CubeMX,可提供以下服務(wù):
STM32微控制器和微處理器的選擇
引腳排列,時(shí)鐘,外設(shè)和中間件配置
項(xiàng)目創(chuàng)建和初始化代碼的生成
- 基于Eclipse?/ CDT,以支持Eclipse?的附加軟件,GNU C / C ++為ARM ?工具鏈和GDB調(diào)試器
- 其他高級(jí)調(diào)試功能包括:
CPU內(nèi)核,外設(shè)寄存器和內(nèi)存視圖
實(shí)時(shí)變量觀看視圖
系統(tǒng)分析和實(shí)時(shí)跟蹤(SWV)
CPU故障分析工具
- 支持ST-LINK(STMicroelectronics)和J-Link(SEGGER)調(diào)試探針
- 從Atollic導(dǎo)入項(xiàng)目? TrueSTUDIO ?和AC6系統(tǒng)工作臺(tái)的STM32(SW4STM32)
- 多操作系統(tǒng)支持:Windows ?,Linux的?和MacOS ?,僅64位版本
STM32CubeIDE軟件獲取
https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-ides/stm32cubeide.html?dl=C1Xl1v%2FULQ0dLNXhPUM9vg%3D%3D%2CcrEvVZcaQVFOpw%2BiBXN5OniVodWnWIjZczA3UQRxaf4t4IqBoA4ynj7KVdsgDWQkzo61Vd7IFSR48HcBaQB0YRJ%2BkmDJE3FQokO6ZkDEdtElQtf%2F5O4k7L07zP26x1rzWypenTcR3xmxW8zQdk0cZSrFINp1v0rofptktxG1ZiaKxBEZk%2BfFyQsFB9NEmpcO3%2Fali0QZwOaXOvoFFoLamIQEGD0T1zvkxSvhtnVFDrXK1rl7wv7VhFB0FbFa8NwpLv9lNr8K2z%2F9hdTjaL5tTN%2FRTqQyx%2FVXZA1UBill%2FgmJ7GsUcR3KHgrSsnv2S3bvl%2FddwcRJzcECHruxxQm562Y87gHg8Ff7A5ybUDdZAnFKsshPEc9Op6unaXrXQKSNEADXkZYJ6T5trp1%2Be%2FgJHmQIysU%2BW7aYcXaGK4N9Lc7SHVRIqA4IX1vVw2plCG9z&uid=QchKIdBoOeE1wsFONZ4se/WuF3wDZMRC

光盤(pán)路徑【華清遠(yuǎn)見(jiàn)-FS-MP1A開(kāi)發(fā)資料\01-工具軟件\st-stm32cubeide_1.5.0_8698_202
01117_1050_x86_64.exe】
STM32CubeIDE安裝
不能在中文路徑下安裝
雙擊

進(jìn)行安裝


可自行選擇路徑安裝


彈出需要安裝STLINK驅(qū)動(dòng),選擇安裝



安裝完成后如上圖。
STM32CubeIDE軟件安裝完成后同樣ST-Link驅(qū)動(dòng)也安裝完成,ST-Link連接至PC,可在設(shè)備管理器中看到ST-link Debug和STMicroelectronics STLink Virtual COM Port串口

注意:如果設(shè)備管理器中ST-Link驅(qū)動(dòng)無(wú)法識(shí)別,帶有驚嘆號(hào),需在高級(jí)啟動(dòng)中禁用驅(qū)動(dòng)程序強(qiáng)制簽名
STM32CubeIDE軟件使用
雙擊桌面圖標(biāo)打開(kāi)軟件,選擇workspace目錄

軟件界面

新建工程
打開(kāi)STM32CubeIDE->File->New->STM32 Project

可以在左側(cè)搜索框內(nèi)輸入芯片型號(hào)STM32MP157A進(jìn)行搜索,選擇對(duì)應(yīng)芯片,點(diǎn)擊Next

填寫(xiě)工程名,點(diǎn)擊Finsh

點(diǎn)擊Yes打開(kāi)配置頁(yè)面


搜索框內(nèi)搜索LED對(duì)應(yīng)GPIO引腳PZ5、PZ6、PZ7,左鍵點(diǎn)擊設(shè)置為GPIO_Output

在Code Generator處選擇為每個(gè)外設(shè)生成單獨(dú)的C和H文件,這樣設(shè)置方便閱讀代碼

完成以上設(shè)置后,Ctrl+S保存,會(huì)提示是否需要生成代碼,選擇Yes即可自動(dòng)生成代碼。系統(tǒng)會(huì)自動(dòng)生成System Clock代碼

可以在左側(cè)工程文件夾看到生成的工程,CA7文件夾是給A7核使用的。Drivers文件夾是ST提供的HAL_Drivers,用戶(hù)無(wú)需修改。LED_CM4子工程是我們生成的M4內(nèi)核的工程代碼。

導(dǎo)入已有工程
在 Project Explorer 窗口中右擊鼠標(biāo),選擇“Import…”,如下圖所示

選擇“Import…”后, 出現(xiàn)如下圖所示的窗口, 選中“Existing Project Into Workpace”, 然后點(diǎn)擊
“Next”

點(diǎn)擊Browse選擇工程存放路徑,勾選需要添加的工程,點(diǎn)擊Finish

點(diǎn)擊 finish 后,工程就已經(jīng)導(dǎo)入成功了
編譯下載
開(kāi)發(fā)板連接
撥動(dòng)開(kāi)發(fā)板啟動(dòng)撥碼至001,開(kāi)發(fā)板上電,使開(kāi)發(fā)板處于Engineering mode,就可以進(jìn)行開(kāi)發(fā)或調(diào)試CM4固件了,連接好ST-LINK和開(kāi)發(fā)板


工程編譯

Debug調(diào)試
選擇Debug按鍵

選擇STM32 Cortex-M C/C++ Application

調(diào)試器 下選擇thru JTAG/SWD link (Engineering mode) ,完成點(diǎn)擊Debug

選擇Switch

點(diǎn)擊運(yùn)行

-
ARM
+關(guān)注
關(guān)注
134文章
9353瀏覽量
377589 -
嵌入式
+關(guān)注
關(guān)注
5152文章
19675瀏覽量
317611 -
Linux
+關(guān)注
關(guān)注
87文章
11511瀏覽量
213828 -
STM32
+關(guān)注
關(guān)注
2293文章
11032瀏覽量
365013 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5682瀏覽量
104794
發(fā)布評(píng)論請(qǐng)先 登錄
STM32CubeIDE報(bào)錯(cuò)編譯STM32MP135(Projects\\STM32MP135C-DK\\External_Loader)的原因?
使用STM32CubeIDE調(diào)試STM32MP157D的M4內(nèi)核時(shí)報(bào)了下圖這個(gè)錯(cuò)誤,怎么解決?
stm32cubeIDE使用malloc失敗是什么原因?
STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊(cè)
stm32cubeIDE使用malloc失敗是什么原因?
使用STM32CubeIDE對(duì)STM32H7進(jìn)行開(kāi)發(fā)和調(diào)試,CM4始終報(bào)\"Failed to read ROM table via AP 3\"錯(cuò)誤怎么解決?
【米爾-STM32MP257開(kāi)發(fā)板試用體驗(yàn)】初次體驗(yàn)米爾-STM32MP257開(kāi)發(fā)板
stm32cubeIDE使用malloc失敗的原因?
使用STM32CubeIDE調(diào)試STM32MP157D的M4內(nèi)核時(shí)報(bào)了錯(cuò)誤怎么解決?
如何關(guān)閉STM32MP1 Developer Package開(kāi)機(jī)默認(rèn)的gtk演示程序?
盤(pán)點(diǎn)工程師常用的嵌入式開(kāi)發(fā)工具
ST×米爾STM32MP25x線下培訓(xùn)會(huì)倒計(jì)時(shí)12天

ST×米爾STM32MP25x線下培訓(xùn)會(huì)

評(píng)論