设备:STM32F407、CMSIS DAP、WIN10 软件:Keil5 来源:毕业实习
0环境配置
正常进度: 安装keil->连stm32板子jtag部分->连仿真器->设置Debug->进入实验1 《图 人生赢家》
如果不幸踩坑,加上实验报告的指导说明 实在是人神共愤,友情提示如下: 1.当你遇到“未知USB设备(设备描述符请求失败)”时,请注意板子的usb mini接口仅有供电功能,不具备调试、下载功能,这时你需要个CMSIS DAP仿真器硬件(如果要用CMSIS-DAP驱动的话),当你使用CMSIS-DAP,结果如图。注意如果用 CMSIS-DAP供电就不能用usb mini供电,否则有烧毁的可能。 连了3.3V+GND两条线后完成板子上电,WIN10设备管理器将自动为你安装驱动。 2.当你遇到“swd/jtag communication failure”时,请注意swd/jtag是用来下载/调试程序的。
虽然咱也不晓得这仿真器连了四根线到板子后(上面一排中的SWCLK,SWDIO,3.3V,下面一排中的GND)为啥不能一上来就用CMSIS DAP Debugger,但你要是遇到了和我一样的问题,有两种解决办法,至于原理,博主也很郁闷。
这里提一下,指导手册上第2页写的“板子上印制SWD,CLK,实际对应SWDIO SWCLK”,这句话应该说的是stm32上的TMS,TCLK对应仿真器上的SWDIO SWCLK。
解决方法一:仿真器除了连上述四根线到板子,还要连下面一排中的TXD,RXD两根线(参见解决方法二中的Tx、Rx连线,注意这是交叉连线),这就很奇怪了。不过,能用就行。
解决方法二:不用jtag接口,而是ISP接口,区别是前者可以调试、下载,后者仅能下载。 没错就是这个玩意: 【注意该图有误,stm32板子上的Tx,Rx线(红黑两线)要互相换位以下,最终是要RXD 和 PA9(STM32 的 TXD)连, TXD 和PA10(STM32的 RXD连,不同设备间交叉连线】
接着,咱们来到软件Keil,编译这个项目,同时它也是你的实验一“无OSxxxx”。 ISP下载过程就是:编译生成.hex的输出文件+SSCOM(串口调试工具)打开串口COM6(参见上文设备管理器的图)+SSCOM发送hex文件。 build后的hex文件在".\Objects" 目录下。不过,用SSCOM过程中遇到了无法解决的错误,没有尝试成功。之后,尝试FlyMcu解决了问题:http://www.mcuisp.com/software/FlyMcu.rar 解决过程如下:
1.Boot0、Boot1、RST
当Boot0设置为高电平,当Boot1设置为低电平时,程序的引导源为引导装载程序,也就所谓的串口ISP程序下载方式(为什么称之为引导装载程序:因为芯片在出厂时在芯片ROM内部固定区域已经固化了串口ISP方式的引导代码,选择串口ISP下载的方式就是选择芯片内部引导装载程序,通过内部固化的程序进行芯片ROM的编程或烧写)详细操作步骤如下: 1.把 B0 接 V3.3(保持 B1 接 GND)。 2. 按一下复位按键。(灯闪烁是因为板子预先烧写了个测试程序,摁复位键后,灯不再闪烁) 通过这两个步骤,我们就可以通过串口下载代码了。
2.flymcu
下载完成之后,恭喜你可以进入实验1。
1
友情提示: 所给代码实现的功能为灯D2常亮,灯D3闪烁。 灯D2常亮是由于timer13.c中: 灯D3闪烁是由于main.c中: 如此修改即可以定时器中断方式交替点亮LED,同时输出GPIO状态。
2
可参考 https://blog.csdn.net/weixin_42108484/article/details/99681870
关于项目的文件组织,可搜索“新建 MDK5 工程”,涉及SYSTEM、HARDWARE等文件可参考STM32F407的工程模板(这里以原子的F4跑马灯工程为例,可去原子的开源论坛自行下载),待续…
3
4
|