仿真调试结果发现仿真时居然沒问题!!搜了下关于BOOT跳转APP进入HardFault_Handler解决方案,大多建议BOOT先关闭全局中断APP再开全局中断解决,尝试上述方式问题依旧。
为了赶时间交样品演示先修改Keil优化等级到0级,应付下吧;结果还是没应付得了调试NTC温度采集发现温度数据始终不变!!!(ADC采集通过DMA方式,DMA长度3ADC3通道,分别是电池电压Vbat、NTC电压Vntc、STM32内部基准电压VrefintADC采集顺序依次如上所述排序)Log信息显示采集到的ADC数据错位了:Vrefint、Vbat、Vntc,也就是说NTC电压实际是Vbat难怪温度数据始终不变。
怀疑是不是Keil编译时搞了什么鬼于是找来陈年旧货EWARM-CD-,新建工程遇到问题解决见上一帖子为什么不用新版IAR,因为太占空间啦烧录运行后问题出现转机!!!,重新上下电DMA过来的ADC数据概率性错误,对就是这个概率性让我想到了会不会是BOOT搞的鬼呀,於是修改BOOTBOOT跳转APP之前关全局中断、关ADC采集、关DMA,结果问题搞定了!!!
总结:BOOT跳转APP之前关闭中断关闭DMA。
本人手记用作备忘,他人不解請提问尽量回答。