多个单片机一次IAP升级

2019-07-21 08:21发布

项目有个需求就是一次性能够给多块电路板进行IAP升级,比如1号电路板的串口1与电脑连接,串口2与电路板2的串口1连接,一次类推。根据原子哥的历程我写了这么个传递函数                {
                for(i=0;i<applenth;i++)
                        {
                        USART_SendData(USART2,USART_RX_BUF[i]);       
                        }
                                //USART_SendData(USART2,0x0d);
                                //USART_SendData(USART2,0x0a);                               
                }

把串口1也就是电脑发过来的数据包传给下一块电路板。
程序单块板子的实验都是可以的,但是几块Mini板子连起来测试只有第一块是升级成功了。想请教下怎么改进?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
jermy_z
1楼-- · 2019-07-21 08:37
510083812 发表于 2018-11-3 14:31
前面的没写出来,不过我是在1完全接收完以后,原子哥历程里面有两个printf后面,才用串口2发给下一块电路 ...

如果有条件的话,用USB转TTL接在串口2上,看串口2有没有发出正确的数据
jermy_z
2楼-- · 2019-07-21 08:38
你这样肯定不行的啊,用DMA倒可以试试,你2在发的时候,1又在收,你这一级缓存数据早就变掉了。即使用DMA,也要用多级缓存
510083812
3楼-- · 2019-07-21 14:32
 精彩回答 2  元偷偷看……
jermy_z
4楼-- · 2019-07-21 19:03
510083812 发表于 2018-11-3 14:31
前面的没写出来,不过我是在1完全接收完以后,原子哥历程里面有两个printf后面,才用串口2发给下一块电路 ...

而且串口数据发送,是需要判断发送为空闲的,你这直接发,80%概率会出错
510083812
5楼-- · 2019-07-21 23:23
jermy_z 发表于 2018-11-3 14:38
而且串口数据发送,是需要判断发送为空闲的,你这直接发,80%概率会出错

发送空闲这个我之前有了解了一下,是在senddata里面循环要检测发送的标志位。这个我加了,而且发送的串口我也用了偶校验

一周热门 更多>