| 
 
| 今天在 探索者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;
 }
 }
 }
 编译下载,测试一举成功。
 | 
 |