
本文记录的是我在烧录时出现的问题,具体细节会因为使用的软件或者STM32不同而不同$ @0 `' g' h; X: s 在使用STM32CubeMX生成的代码,经过keil5编写后,使用usb接口烧录进STM32然后发现keil5中再也识别不出来STM32$ b# ]' q1 l9 v3 i* R! { 在Keil5中点开这个7 g6 c* F" V) v: l3 y ![]() / P) p% f- s, A7 } N \' f; F 选择debug,右上角的Use选择J-LINK/J_TRACECortex,然后点击右边的Settings, ![]() ! Q4 Y/ G. i& A0 X7 o {0 j 在Port窗口选择SW,如果是可以烧录即可以读取到STM32的信息时,左上角的SN中会有信息,而且右上角小窗口中的涂抹位置也会有信息;但是如果读取不到STM32时,左边的SN窗口中会有信息,但是右边的小窗口中涂抹部位没有信息 ![]() , w7 l/ b, y E O 我的情况是第一次连接STM32时可以读取到,但是完成一次烧录后就读取不到了,如果代码是用STM32CubeMX导出后修改的,可能就是这个问题,如下图,即SYS中的Debug选择了No Debug,如果这么选择了,那么代码烧录进STM32后就会马上禁用JTAG-DP和SW-DP,就没有办法继续烧录了, ![]() & K9 H) U) H* s) K 如何从根本上解决这个问题,让下一次烧录可以正常进行,即在STM32CubeMX中把SYS的Debug改成Serial Wire或者Trace Asynchronous Sw,这样只有会禁用JTAG-DP而不会禁用SW-DP8 n. [* F3 Z+ ?/ d$ C+ M% O : w8 s& }# O' r, { e 现在需要解决如何让不能烧录的STM32重新可以烧录,因为烧录不了了,软件没有办法解决,所以使用硬复位,因为我使用的是STM32F1的,所以有一个NRST引脚,NRST是异步复位脚,如果NRST引脚低电平即可复位,会重设所有的内部寄存器,因为原来NRST是接着高电平的,所以将NRST接地即可+ e; J c) g( u' F4 K 如果产品有reset按键,可以使用按键,如果没有,就找到NRST对应引脚,接根线出来接地,我的没有按键,所以接了线出来 # f1 b5 L1 \* A' H- }" A8 u NRST接地或者reset按下时,即NRST低电平时keil又可以重新查找到,然后再松开NRST接地线或者放开reset按钮,即NRST高电平时又可以烧录了! L/ ~& c$ u1 x; r5 ` ———————————————— 版权声明:试图摸大鱼0 t6 P( I! t& W( f! _ d! s k0 Y$ ^; W3 L' Z6 Z5 e |
新版STM32Cube for Visual Studio Code开发体验
【STM32N6570-DK评测】3.CubeMX关于DCMIPP和CSI的BUG整理及摄像头使用
经验分享常被误解的开、关总中断
【STM32C0测评】Nucleo-C092开发板功耗测试
【STM32C0测评】Nucleo-C092开发板IIC通信测试(硬件IIC)
【STM32C0测评】Nucleo-C092开发板IIC通信测试(软件IIC)
【STM32C0测评】Nucleo-C092开发板IIC通信测试(硬件软件IIC一网打尽)
【STM32C0测评】Nucleo-C092开发板USART串口测试
【STM32C0测评】Nucleo-C092开发板使用PWM控制板载LED呼吸灯
【STM32C0测评】Nucleo-C092板卡外部中断控制板载LED灯