STM32的调试方式、更新程序、仿真以及补救措施

最近有一个项目用到了stm32f103rb系列单片机,由于引脚数量较少,不得不使用到了单片机的pb3和pb4两个引脚。而这两个引脚刚好又是stm32系列的jtag调试引脚,如果要用于普通io的功能需要先进行一定的设置。
1. stm32的调试方式选择
stm32支持jtag和swd两种调试方式,且默认状态下这两种调试功能都是开启的。
由此我们可以知道:
如果要使用jtag调试功能,那么pb3,pb4,pa13,pa14,pa15都不能使用;
而如果我们关闭jtag功能,但是开启swd调试功能,那么pb3,pb4,pa15都可以当作普通io来使用了;
st官方3.5的库有提供关闭调试功能的两个接口:
1.1 关闭所有的jtag和swd调试功能
慎用,一旦执行该命令,程序运行后将不能通过jtag或swd方法进行烧写和下载,补救措施见文末。
rcc_apb2periphclockcmd(rcc_apb2periph_gpiob | rcc_apb2periph_afio, enable);
gpio_pinremapconfig(gpio_remap_swj_disable, enable);
执行上面语句后,pb3,pb4,pa13,pa14,pa15都可以当作普通io来使用,此时不能通过j-link进行调试了;
1.2 仅关闭jtag调试功能
该方法的好处是,解放了jtag功能占用的引脚,但是swd调试功能依旧可以使用。
rcc_apb2periphclockcmd(rcc_apb2periph_gpiob | rcc_apb2periph_afio, enable);
gpio_pinremapconfig(gpio_remap_swj_jtagdisable, enable);
执行上面语句后,pb3,pb4,pa15都可以当作普通io来使用,且可以通过swd进行调试。
2. 关闭jtag和swd调试方式后如何更新程序以及仿真
2.1 关闭jtag如何更新程序
关闭jtag调试功能以后,stm32不再支持在线仿真,且更新程序也需要通过一定操作才可以完成。此方法在开发阶段慎用!
建议程序启动时延时3-5秒后再关闭jtag调试模式,如此,单片机断电复位后立即点击烧写按钮也是可以进行程序烧录的。
2.2 关闭jtag及swd调试功能后的补救措施
补救措施一:
设置启动模式为isp模式(boot0=1、boot1=0)或设置启动模式为ram运行模式(boot0=1、boot1=1)。
将开发板断电后重新上电,此时就因不是在用户程序模式,因此就不会执行禁用jtag的语句,jtag功能也就可以正常使用。
补救措施二:
设置启动模式为isp模式(boot0=1、boot1=0),用isp程序将stm32的flash擦除,之后就可恢复jtag功能。
补救措施三:
如果你的仿真器支持swd仿真模式,如iar下用jlink、mdk下用ulink2。直接将仿真器的模式设为swd模,就可以不受这个禁止jtag功能的影响了。

数字化科技+LED舞台结合,独特的化学反应
三星Galaxy S11e的高清渲染图曝光 或定位小屏旗舰
伺服压力机的主要特点是什么
建立电子元器件产学研合作基地 富捷电子为行业发展助力
Ai-WB1系列AT指令连接TCP服务器
STM32的调试方式、更新程序、仿真以及补救措施
记忆体模组厂2Q表现各异 下半年冲刺市况回温
输电线路智能三目云台视频监控装置---深圳拓普威视科技研制
汽车总线设计和测试经典问答总汇(上)
脉冲定时器时间未到而在此触发IN端则会重新计时是否正确?为什么?
PIE-Basic软件又添新成员 ,新增水色遥感业务处理能力
MySQL到底是join性能好,还是in一下更快呢?
怎么去设计一种基于模拟电路的跑马灯电路呢?
爆三星S8支持面部识别0.01秒解锁!对比iPhone 8,选哪个?
华为向西方出售5G技术将会对球5G的发展带来怎样的影响
常用电子物料封装及参数_电子物料基础知识详解
为什么外接法只适合小电阻而内接法只适合大电阻?
天合光能至尊N型700W系列组件引领光伏7.0全线升级
大唐移动提前完成测试中基于NSA架构核心网设备技术部分,助力5G商用
自动驾驶汽车功能真的不如宣传的那么强大?