一,处理思路(定时器模拟空闲中断) 判断串口接收到一条完整的数据以后置位一个标志位,主循环判断此标志位处理数据. 如何判断接收到一条完整的数据: 无论做的什么串口通信,数据总是一条一条的发送,发送完一条再发送另一条,发送每一条数据之间存在时间间隔,串口接收数据的时候控制一个 变量在定时器里面累加,同时串口中断接收数据的时候对这个变量清零!如果串口一直接收数据这个变量永远累加不到期望的数值,如果串口接收 数据以后不再接收数据,变量会累加到期望的数值,然后就是判断接收到一条完整的数据. 二,由于每个单片机串口配置的写法不一,只截图说明使用 串口接收到数据时:Usart1ReadCnt++; Usart1IdleCnt = 0; 定时器 判断Usart1ReadCnt !=0 说明串口接收到数据 然后 Usart1IdleCnt++ 如果串口一直接收数据 Usart1IdleCnt将不能累加到 Usart1IdleTime (本程序设置的10) Ms 串口接收完一串数据以后,停了10Ms 没有发过来数据, 则会执行 Usart1IdleCnt = 0; Usart1ReadCntCopy = Usart1ReadCnt; Usart1ReadCnt = 0; Usart1ReadFlage = 1; 三,主循环调用 注意:如果通信时间过短小于10Ms