写在前面:
本文章为《ARM Cortex-M4裸机开发篇》系列中的一篇,,全系列总计14篇。笔者使用的开发平台为华清远见FS-MP1A开发板(STM32MP157开发板),Cortex-M4裸机开发篇除了讲M4裸机开发外,还会讲解通过M4控制资源扩展板上的各种传感器执行器模块(包括空气温湿度传感器、LED灯、数码管、蜂鸣器、震动马达、按键中断、风扇等),本篇是M4控制资源扩展板中的一篇。
资源扩展板是FS-MP1A开发板的扩展模块,主要包含了10余种助主流传感器、执行器件、总线控制器件,非常方便项目扩展用。可拓展开发智慧家庭、智能医疗、智能安防、工业控制、图像识别、环境检测等方向的10个左右综合项目,华清远见开发板也将配套提供所有项目的说明文档、实验源码、应用程序等资料。
针对FS-MP1A开发板,除了Cortex-M4裸机开发篇外,还包括其他多系列教程,包括Cortex-A7开发篇、FreeRTOS篇、Linux基础及应用开发篇、Linux系统移植篇、Linux驱动开发篇、硬件设计篇、人工智能机器视觉篇、Qt应用编程篇、Qt综合项目实战篇等。
资源扩展板介绍
硬件介绍
![poYBAGFmcj6AXKrxAAKh90fgDqA915.jpg](https://file.elecfans.com/web2/M00/17/9E/poYBAGFmcj6AXKrxAAKh90fgDqA915.jpg)
资源扩展板可开发项目
![poYBAGFmcj6AXKrxAAKh90fgDqA915.jpg](https://file.elecfans.com/web2/M00/17/9E/poYBAGFmcj6AXKrxAAKh90fgDqA915.jpg)
Cortex-M4 开发环境搭建
STM32CubeIDE是一个高级C / C ++开发平台,具有用于STM32微控制器和微处理器的外设配置,代码生成,代码编译和调试功能。它基于ECLIPSE™/ CDT框架和用于开发的GCC工具链,以及用于调试的GDB。它允许集成数百个现有插件,这些插件可以完善ECLIPSE™IDE的功能。
主要特点:
- 集成STM32CubeMX,可提供以下服务:
STM32微控制器和微处理器的选择
引脚排列,时钟,外设和中间件配置
项目创建和初始化代码的生成
- 基于Eclipse™/ CDT,以支持Eclipse™的附加软件,GNU C / C ++为ARM ®工具链和GDB调试器
- 其他高级调试功能包括:
实时变量观看视图
系统分析和实时跟踪(SWV)
CPU故障分析工具
- 支持ST-LINK(STMicroelectronics)和J-Link(SEGGER)调试探针
- 从Atollic导入项目® TrueSTUDIO ®和AC6系统工作台的STM32(SW4STM32)
- 多操作系统支持: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
![poYBAGFmcj6AJvNYAABfKQWnGl8691.jpg](https://file.elecfans.com/web2/M00/17/9E/poYBAGFmcj6AJvNYAABfKQWnGl8691.jpg)
光盘路径【华清远见-FS-MP1A开发资料\01-工具软件\st-stm32cubeide_1.5.0_8698_202
01117_1050_x86_64.exe】
STM32CubeIDE安装
不能在中文路径下安装
双击
![pYYBAGFmcj6AVCyRAAAM2SjeDaY803.jpg](https://file.elecfans.com/web2/M00/17/A5/pYYBAGFmcj6AVCyRAAAM2SjeDaY803.jpg)
进行安装
![poYBAGD1MCGAUKdBAACWdeeJ6vY978.png](https://file.elecfans.com/web2/M00/09/46/poYBAGD1MCGAUKdBAACWdeeJ6vY978.png)
![poYBAGD1MCWAaINQAABdfPtD8Ok319.png](https://file.elecfans.com/web2/M00/09/47/poYBAGD1MCWAaINQAABdfPtD8Ok319.png)
可自行选择路径安装
![pYYBAGFmcj6AfTeoAABGKv_10mE724.jpg](https://file.elecfans.com/web2/M00/17/A5/pYYBAGFmcj6AfTeoAABGKv_10mE724.jpg)
![poYBAGFmcj-APo-9AABRHpySFxY858.jpg](https://file.elecfans.com/web2/M00/17/9E/poYBAGFmcj-APo-9AABRHpySFxY858.jpg)
弹出需要安装STLINK驱动,选择安装
![poYBAGD1MDKAGghxAADFlfHV7UQ749.png](https://file.elecfans.com/web2/M00/09/47/poYBAGD1MDKAGghxAADFlfHV7UQ749.png)
![poYBAGD1MDaAcfv4AAApQ-sj_iY117.png](https://file.elecfans.com/web2/M00/09/47/poYBAGD1MDaAcfv4AAApQ-sj_iY117.png)
![poYBAGD1MDuALTGDAACMgHBN7ow118.png](https://file.elecfans.com/web2/M00/09/47/poYBAGD1MDuALTGDAACMgHBN7ow118.png)
安装完成后如上图。
STM32CubeIDE软件安装完成后同样ST-Link驱动也安装完成,ST-Link连接至PC,可在设备管理器中看到ST-link Debug和STMicroelectronics STLink Virtual COM Port串口
![pYYBAGD1MD-AT_Q1AABc-nZg3Hk621.png](https://file.elecfans.com/web2/M00/09/4B/pYYBAGD1MD-AT_Q1AABc-nZg3Hk621.png)
注意:如果设备管理器中ST-Link驱动无法识别,带有惊叹号,需在高级启动中禁用驱动程序强制签名
STM32CubeIDE软件使用
双击桌面图标打开软件,选择workspace目录
![pYYBAGFmcj-AVN6cAABO1FP2kxQ850.jpg](https://file.elecfans.com/web2/M00/17/A5/pYYBAGFmcj-AVN6cAABO1FP2kxQ850.jpg)
软件界面
![pYYBAGFmcj-AbsOBAABygIkO1bg877.jpg](https://file.elecfans.com/web2/M00/17/A5/pYYBAGFmcj-AbsOBAABygIkO1bg877.jpg)
新建工程
打开STM32CubeIDE->File->New->STM32 Project
![poYBAGD1ME2AVPeTAACVnz-qkMk546.png](https://file.elecfans.com/web2/M00/09/47/poYBAGD1ME2AVPeTAACVnz-qkMk546.png)
可以在左侧搜索框内输入芯片型号STM32MP157A进行搜索,选择对应芯片,点击Next
![poYBAGFmcj-ASM-mAAC8KlaJkAU786.jpg](https://file.elecfans.com/web2/M00/17/9E/poYBAGFmcj-ASM-mAAC8KlaJkAU786.jpg)
填写工程名,点击Finsh
![poYBAGD1MFWAXdlzAABW-5r3LmY634.png](https://file.elecfans.com/web2/M00/09/47/poYBAGD1MFWAXdlzAABW-5r3LmY634.png)
点击Yes打开配置页面
![pYYBAGD1MFqAKmnWAAAp3TMlYLo989.png](https://file.elecfans.com/web2/M00/09/4B/pYYBAGD1MFqAKmnWAAAp3TMlYLo989.png)
![poYBAGFmcj-AF6saAAEDRfefWWQ542.jpg](https://file.elecfans.com/web2/M00/17/9E/poYBAGFmcj-AF6saAAEDRfefWWQ542.jpg)
搜索框内搜索LED对应GPIO引脚PZ5、PZ6、PZ7,左键点击设置为GPIO_Output
![pYYBAGD1MGOAQN6wAAC-3IaQ2Ns189.png](https://file.elecfans.com/web2/M00/09/4B/pYYBAGD1MGOAQN6wAAC-3IaQ2Ns189.png)
在Code Generator处选择为每个外设生成单独的C和H文件,这样设置方便阅读代码
![poYBAGD1MGmAams0AACpGOkAn0s579.png](https://file.elecfans.com/web2/M00/09/47/poYBAGD1MGmAams0AACpGOkAn0s579.png)
完成以上设置后,Ctrl+S保存,会提示是否需要生成代码,选择Yes即可自动生成代码。系统会自动生成System Clock代码
![poYBAGD1MG2ADAi6AAAgBCPP1k8477.png](https://file.elecfans.com/web2/M00/09/47/poYBAGD1MG2ADAi6AAAgBCPP1k8477.png)
可以在左侧工程文件夹看到生成的工程,CA7文件夹是给A7核使用的。Drivers文件夹是ST提供的HAL_Drivers,用户无需修改。LED_CM4子工程是我们生成的M4内核的工程代码。
![pYYBAGD1MHKAXkD2AAC0tr4gJYk085.png](https://file.elecfans.com/web2/M00/09/4B/pYYBAGD1MHKAXkD2AAC0tr4gJYk085.png)
导入已有工程
在 Project Explorer 窗口中右击鼠标,选择“Import…”,如下图所示
![poYBAGD1MHaAECK2AABm4QskvyY608.png](https://file.elecfans.com/web2/M00/09/47/poYBAGD1MHaAECK2AABm4QskvyY608.png)
选择“Import…”后, 出现如下图所示的窗口, 选中“Existing Project Into Workpace”, 然后点击
“Next”
![pYYBAGD1MHqAXB-mAABurMiDrgg250.png](https://file.elecfans.com/web2/M00/09/4B/pYYBAGD1MHqAXB-mAABurMiDrgg250.png)
点击Browse选择工程存放路径,勾选需要添加的工程,点击Finish
![poYBAGD1MH-ACWQuAACG-kcvcTo992.png](https://file.elecfans.com/web2/M00/09/47/poYBAGD1MH-ACWQuAACG-kcvcTo992.png)
点击 finish 后,工程就已经导入成功了
编译下载
开发板连接
拨动开发板启动拨码至001,开发板上电,使开发板处于Engineering mode,就可以进行开发或调试CM4固件了,连接好ST-LINK和开发板
![pYYBAGFmckCASQDcAADmxL9PPaw612.jpg](https://file.elecfans.com/web2/M00/17/A5/pYYBAGFmckCASQDcAADmxL9PPaw612.jpg)
![pYYBAGFmckCATcaEAACNafeY7bE886.jpg](https://file.elecfans.com/web2/M00/17/A5/pYYBAGFmckCATcaEAACNafeY7bE886.jpg)
工程编译
![pYYBAGD1MI6AAs7zAAAWIZ__Mk0419.png](https://file.elecfans.com/web2/M00/09/4B/pYYBAGD1MI6AAs7zAAAWIZ__Mk0419.png)
Debug调试
选择Debug按键
![poYBAGD1MJKAaXBQAAAcODjIsEo721.png](https://file.elecfans.com/web2/M00/09/47/poYBAGD1MJKAaXBQAAAcODjIsEo721.png)
选择STM32 Cortex-M C/C++ Application
![poYBAGD1MJaALoX-AACiyFdMFqc386.png](https://file.elecfans.com/web2/M00/09/47/poYBAGD1MJaALoX-AACiyFdMFqc386.png)
调试器 下选择thru JTAG/SWD link (Engineering mode) ,完成点击Debug
![poYBAGFmckCAD1WyAACfOLkB4IY581.jpg](https://file.elecfans.com/web2/M00/17/9E/poYBAGFmckCAD1WyAACfOLkB4IY581.jpg)
选择Switch
![pYYBAGD1MJ-AMn90AAA63B5XzFQ096.png](https://file.elecfans.com/web2/M00/09/4B/pYYBAGD1MJ-AMn90AAA63B5XzFQ096.png)
点击运行
![pYYBAGFmckCAEO--AAC8rqcgKNE398.jpg](https://file.elecfans.com/web2/M00/17/A5/pYYBAGFmckCAEO--AAC8rqcgKNE398.jpg)
-
ARM
+关注
关注
134文章
8738浏览量
363345 -
嵌入式
+关注
关注
5017文章
18497浏览量
293272 -
Linux
+关注
关注
87文章
11030浏览量
207261 -
STM32
+关注
关注
2250文章
10727浏览量
350417 -
开发板
+关注
关注
25文章
4609浏览量
95130
发布评论请先 登录
相关推荐
怎样使用STM32MP157A-DK1探索板的m4和SAI协议做音频开发,比如录音?
STM32CubeIDE找不到elf
带STM32MP157 MPU的评估板
如何选择米尔基于STM32MP1系列核心板和开发板
如何选择STM32MP1系列核心板和开发板
![如何选择<b class='flag-5'>STM32MP1</b>系列核心板和<b class='flag-5'>开发</b>板](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
零基础快速入手STM32MP1
STM32MP1多核实时低功耗处理器
STM32CubeIDE中基于STM32L5系列的项目入门
![<b class='flag-5'>STM32CubeIDE</b>中基于<b class='flag-5'>STM32</b>L5系列的项目入门](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
评论