stm32 iap中可以使用中断吗

stm32 iap中可以使用中断吗,第1张

IAP是个好东西,开发板上讲族悔的很细很明白,在实际用途上来说,串口IAP过程需要校验。ST官方给的例子很好用,超级终端Ymodem协议发送,带CRC校验。

1,Bootloader介绍,修改的官方IAP程序。官方的程序使用的它自己的开发板,要用按键进入Bootloader然后选择是否进入IAP等等选项,我改成启动时串口是否收到指定字符来判断是否进入IAP的Bootloader(打开超级终端,连上自己开发板,键盘一直点字符‘a’,然后重启开发板就进入Bootloader)。

2,原ST官方给的Bootloader程序中在跳转到APP程序后没有给关掉中断,我在调试STM32F103RB(20kRAM 128kROM)中发现总是不能正常运行App程序,困扰了我很长时间,后来在Bootloader加上了关闭中断,后解决了这个问题,同时也隐藏了另一个问兆缺正题3。

3,我换了CPU改成STM32F103RD(60kRAM)发现APP程序不能进入中断,我找了好久,扮拆最终发现是中断关闭没有打开,而STM32F103RB片子上却没有这个问题。。。我在代码上做如下如理,解决了这个问题,终于解决了。。。

把ZONE1作为运行区,ZONE2作为备份区,每次升级时先将代码写扰者腊在ZONE2,并设置标志缓滑,然后重启,bootloader识别有升级标志,将ZONE2的代码拷贝至ZONE1区,并清标志,就嫌雹可以了,每次都是跳转至ZONE1运行。

IAP15F2K61S2ADC是一款基于8051内核的单片机芯片。对于中断查询次序号,一般来说是指中断向量表中的位置序号。在IAP15F2K61S2ADC的中断向量表中,各中断源的中断查询次序号如下:

0:外部中断0(INT0) 1:定时器0中断 2:外部中断1(INT1) 3:定时器1中断 4:串口中断 5:看门狗定时器中断 6:ADC中断

当某个中断源产生中断信号时,芯片会根据该中断源对应的中断查询次序号到中断向量表中查询中断服务程序的入口地址搭顷。例如,当ADC中断发生时,芯片会根据中断查询次序号为6,在中断向量表中查询中断服务程序的入口地址。

需要注意的是,在编写中断服务程序时,需要参考芯片的数绝枝液据手册和相关开发工具的文档,确保对中断源和中断向量表的使用是正确的,并物以避免可能存在的潜在问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12536397.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存