STM32搭建开发环境
常用开发工具简介
集成开发环境
- MDK:全名RealViewMDK,是Keil公司(已被ARM收购的)一款集成开发环境,界面美观,简单易用,是STM32最常用的集成开发环境
- EWARM:IAR公司的一款集成开发环境,支持STM32开发,对比MDK,IAR的使用人数少一些,用惯IAR的朋友可以选择这款软件开发STM32
MDK安装=MDK软件安装+器件支持包
DAP仿真器(CMSIS-DAP Debugger),DAP仿真器在MDK下是免驱动的(无需安装驱动),即插即用,非常方便。
CH340 USB虚拟串口驱动
安装CH340 USB虚拟串口驱动,以便我们使用电脑通过USB和STM32进行串口通信。
开发板使用的USB虚拟串口芯片是CH340C
在驱动安装成功之后,将开发板的USB_UART接口通过USB连接到电脑,此时电脑就会自动给其安装驱动了。
USB虚拟串口作用
- USB口当串口来使用
- 如果USB连接的是串口1,那么USB口还可以当做串口来下载程序
- 当USB供电口
① 是编译按钮,表示编译当前工程项目文件,如果之前已经编译过了,则只会编译有改动的文件。所以一般第一次会比较耗时间,后续因为只编译改动文件,从而大大缩短了编译时间。该按钮可以通过 F7 快捷键进行操作。
② 是重新编译当前工程所有文件按钮,工程代码较多时全部重新编译会耗费比较多的时间,建议少用。按①处的按钮,编译当前项目,在编译完成后,可以看到如图 4.1.6 所示的编译提示信息:
因此图 4.1.6 的提示信息表示:代码总大小(Porgram Size)为:FLASH 占用 5832 字节(Code + RO + RW),SRAM 占用 1928 字节(RW + ZI);成功创建了 Hex 文件(可执行文件,放在Output 目录下);编译 0 错误,0 警告;编译耗时 2 秒钟。
必须编译成功,才会生成Hex可执行文件,否则是不会有这个文件的。
串口下载程序
M3、M4、M7开发板支持串口下载程序,但是ATK-XISP.exe软件只支持下载到内部Flash。
STM32的ISP下载,常用串口1下载程序。
因为使用USB虚拟串口,所以实现得安装虚拟串口驱动
STM32启动模式(M3和M4)
通过BOOT0和BOOT1引脚设置启动模式(M3和M4)
串口一键下载电路原理
一键下载电路,是利用串口的DTR和RTS信号,分别控制STM32的复位和BOOT0引脚,配合ATK-XISP,设置:DTR的低电平复位,RTS高电平进入BootLoader。
这样,BOOT0和STM32的复位引脚,完全由下载软件自动控制,从而实现一键下载。
DAP下载硬件连接
- 选择使用 CMSIS-DAP Debugger 仿真器仿真调试代码。如果你使用的是其他仿真器,比如 STLINK、JLINK 等,请在这里选择对应的仿真器型号。
- Run to main()该选项选中后,只要点击仿真就会直接运行到main函数,如果没选择这个选项,会先执行startup_stm32f103xe.s文件的Reset_Handler,再跳到main函数。
还需要在Utilities选项卡里面设置下载时的目标编程器,直接勾选Use Debug Driver,即和调试一样,选择DAP给目标器件的Flash编程,然后点击Settings,进入Flash算法设置。
JTAG/SWD调试原理概述
Cortex-M内核含有硬件调试模块,该模块可在取指(指令断点)或访问数据(数据断点)时停止。
内核停止时,可以查询内核的内部状态和系统的外部状态。完成查询后,可恢复程序执行。
F1系列可以通过AFIO_MAPR寄存器的SWJ_CFG[2:0]位来释放部分或者全部SWJ-DP引脚。
F4/F7/H7系列默认全部SWJ-DP引脚为复用功能并映射到复用功能0(AF0)。