提高单片机通讯容错率的系统及其方法与流程

文档序号:12271104阅读:来源:国知局

技术特征:

1.提高单片机通讯容错率的系统,包括待通讯的单片机,待通讯的单片机之间建立UART串口通讯,其特征在于,所述待通讯的单片机各自内部设置有间隔定时器;

所述间隔定时器,用于产生定时中断并计数,当产生一个定时中断,则计数变量g_cnt1ms值增加1,当计数变量g_cnt1ms到达预设值T1时,即使再产生定时中断,计数变量g_cnt1ms值也不用再增加;

当系统检测到串口接收中断信号产生时,判断计数变量g_cnt1ms值是否大于T2,其中,T2<T1;当计数变量g_cnt1ms值大于T2时,系统将接收缓存数组RxBuffer[i]的下标i置0后,将UART0串口接收寄存器中接收到的数据RxData,存入到数组下标为i的接收缓存数组元素RxBuffer[i]中,即RxBuffer[i]=RxData;如果计数变量g_cnt1ms值不大于T2,则判断接收缓存数组的下标i是否大于或等于接收缓存数组元素个数n,如果i>=n,则将接收缓存数组的下标i置0,再将UART0串口接收寄存器中接收到的数据RxData,存入到数组下标为i的接收缓存数组元素RxBuffer[i]中,即RxBuffer[i]=RxData;再将接收缓存数组下标i值增加1,即i++,并将计数变量g_cnt1ms值清零后,重复检测串口接收终端信号的产生。

2.根据权利要求1所述的提高单片机通讯容错率的系统,其特征在于,所述待通讯的单片机至少为两个。

3.根据权利要求2所述的提高单片机通讯容错率的系统,其特征在于,所述待通讯的单片机之间建立UART串口通讯包括:待通讯的单片机一的UART0串口管脚TXD0与待通讯的单片机二的UART0串口管脚RXD0相连接,待通讯的单片机一的UART0串口管脚RXD0与待通讯的单片机二的UART0串口管脚TXD0相连接。

4.用于权利要求1-3任意一项的提高单片机通讯容错率的方法,其特征在于,包括以下步骤:

步骤1,单片机上电后系统对接收缓存数组RxBuffer[i]、数组下标i、计数变量g_cnt1ms、UART0串口和间隔定时器进行初始化,并启动UART0串口和间隔定时器,其中i≦n,n为缓存数组元素个数;

步骤2,系统监测是否有中断信号产生,是则进入步骤3;否则,重复步骤2;

步骤3,系统检测中断信号,若中断信号为串口接收中断信号,则进入步骤4;若中断信号为间隔定时中断信号,系统检测计数变量g_cnt1ms值是否小于预设值T1,如果计数变量g_cnt1ms值小于T1,则计数变量g_cnt1ms值增加1,即g_cnt1ms++,重复步骤3;如果计数变量g_cnt1ms值大于或等于T1,则重复步骤2;

步骤4,系统判断计数变量g_cnt1ms值是否大于T2,是则系统将接收缓存数组的下标i置0,进入步骤5;否则系统判断接收缓存数组RxBuffer[i]的下标i是否大于或等于数组元素个数n,如果i>=n,则将接收缓存数组的下标i置0,再进入步骤5;

步骤5,系统将UART0串口接收寄存器中接收到的数据RxData,存入到数组下标为i的接收缓存数组元素RxBuffer[i]中,即RxBuffer[i]=RxData;然后,将接收缓存数组下标i值增加1,即i++,并将计数变量g_cnt1ms值清零后重复步骤2。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1