STM32G0开发板下载代码问题

任务:

通过CueMX生成代码,然后烧写到STM32G0开发板上。

遇到的问题:

1. CubeMX生成的代码能用Keil编译,但是下载不到flash中

2. CubeMX再次生成代码后,SWD无法识别芯片。

逐个击破:

1. CubeMX生成的代码能用Keil编译,但是下载不到flash中

编译后,点击keil的debug后者download图标,无法下载,报没有flash算法。

既然报没有flash算法,那就去debug配置那里,选择flashdownload,的确没有选择算法

既然没有选择flash算法,那就add一个。

add的时候发现没有STM32 G0对应的flash算法。随便选择一个也是不能烧写的。那应该是必须选择适合STM32G0内falsh的算法。

回想一下,这一台电脑第一次烧STM32 G0的,应该是没有装G0对应的pack。

点击“魔法棒 - Device”一看,确实没有G0对应的芯片

立马安装对应pack(选中G0的pack,无脑下一步安装就行了) 

官网下载都是很慢的,我都是网站找好别人下载的,哈哈哈哈

 安装完后,重新打开keil工程。果然,芯片那里就有了G0芯片,算法选择那里也有了对应的G0的falsh算法。

至此,烧写正常了!!! 

2. CubeMX再次生成代码后,SWD无法识别芯片。

由于没有开发板原理图,不知道LED对应哪个GPIO,改用串口输出打印,测试代码运行情况。CubeMX上选择uart1使能,配置相关串口参数,如异步、波特率,停止位等,这样PA9,PA10就复用成了uart1功能,重新生成代码后,重写f_putc函数,添加prtinf打印,再次编译,下载。

printf实现参考:

STM32使用printf函数的步骤和注意事项_stm32 printf_石头牛的博客-CSDN博客

无奈下载时说找不到设备,又无法下载了!!!

最终,点击debug的时候,发现STlink设备确实没有找到!!!

回想一下,我用的是Jlink,不应该是STlink,报错不是正常吗?!再次选择Jlink,终于烧写成功。

思考为什么会变成STlink??

---CubeMx重新生成代码,配置项会变回STlink!!

---CubeMx重新生成代码,部分代码会被恢复,不想自己辛辛苦苦写的代码被覆盖掉,那就要按照CubeMx的规则,将自己的代码写在两个注释之间,这样CubeMx重新生成代码时就不会覆盖自己的部分。

如:

/* USER CODE BEGIN  */

MyCode...

/* USER CODE END  */

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值