初级会员

- 积分
- 112
- 金钱
- 112
- 注册时间
- 2017-7-13
- 在线时间
- 36 小时
|
1金钱
在IAP程序中,运行到1时,oldcount是0,USART_RX_CNT是1,当运行到2时,oldcount还是0,但USART_RX_CNT变成2,oldcount就被赋值成了2,但下一次运行到1时,USART_RX_CNT还是2,它就进去了,理论上USART_RX_CNT要加到不再变化时才能进,但第2次就进去了,结果applenth得到了错误的代码长度,我用的和原子哥一样的代码(去掉了printf),没有正确的applenth,害得我只能手动添加代码长度,笑哭了 笑哭,求大神指点
另外分享一个写IAP程序时发现的问题(已解决),我的BOOT程序中有Delay_Init();,这个延时用的是滴答定时器
void Delay_Init(void)
{
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
fac_us = SystemCoreClock/8000000;
fac_ms = (u16)fac_us*1000;
}
在BOOT程序的main函数中加了Delay_Init,跳转程序后程序直接跑飞,掉电后能跳转,但还是直接跑飞,结果我把Delay_Init注释掉,再跳转后就能正常执行了,APP里的中断也没有问题
|
|