STM32F407过程记录

设备: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))
【注意↑该图有误,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
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值