PC和ARM的串口通信问题
目前想实现利用串口完成对ARM的烧写功能,为了达到烧写效率高、可靠性好,问题就出现了。
第一种方案:
PC机将要烧写的文件打包,每包一个字节校验位。PC机发送一包,等待ARM的返回校验状态,若ARM返回校验通过,再发送下一包,否则重发。
这种机制虽然可靠,但是速度较慢,这样一收一发,发送线和接收线总是有一方空闲,没有充分利用串口双工的特点。
第2种方案:
PC机连续不断的向ARM端发包,ARM端也连续不断的发送校验位。最后统一处理校验不通过的包。
这样有以下问题,请赐教:
(1)在保持波特率不变的情况下,这样做可否提高速率。
(2) 为了保证连续发送时,前1包数据不被下一包数据覆盖,我怎么知道前一包数据已经发送完成,然后及时的发送下一包?
(3) 串口的波特率最大支持到多大,我现在用115200,再大一点儿后,打开串口时,程序报错。