打印

探索者STM32F4 料串口IAP实验分享

[复制链接]
187|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
你画我瞎|  楼主 | 2018-7-30 10:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天在 探索者STM32F4 开发板上做了下 串口IAP实验,XOM下载 RTC.bin Flash APP,发送文件XCOM显示多条
用户程序接收完成!
代码长度:xxxxxBytes
Key_UP键转存bin提示错误
Illegal FLASH APP!

Bus Hound监控全程通讯,发送的是bin原文,没做任何协议,看代码板子接收串口数据直接保存在 USART_RX_BUF数组里;
问题就出在main()的while(1)第一段接收超时判断里,这个猪循环只简单的延时delay_ms(10);
并没有在对接收同步计时做处理,未解决这个超时判断错误问题,做如下修改,增加循环多次后再判断超时;

if(USART_RX_CNT)
{
rt++;
if(oldcount==USART_RX_CNT&&rt>=4)//新周期内,没有收到任何数据,认为本次数据接收完成.
{
applenth=USART_RX_CNT;
oldcount=0;
USART_RX_CNT=0;
printf("用户程序接收完成!
");
printf("代码长度:%dBytes
",applenth);
}
else
{
if(oldcount!=USART_RX_CNT)
{
rt=0;
oldcount=USART_RX_CNT;
}
}
}
编译下载,测试一举成功。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

395

主题

395

帖子

0

粉丝