【摘要】:串口通信模块的主要功能是接收中央控制器发送过来的数据;发送数据至中央控制器。针对以上问题,提出以中断接收嵌套查询接收的方式进行串口数据接收,不仅能够正确接收和处理任意长度的数据,而且具有较强的抗干扰性。图7-24 串口中断接收嵌套查询接收方式流程图当串口收到数据后,单片机产生中断,进入中断服务函数,首先关总中断,然后利用for循环延时100ms,在延时函数中采用查询方式接收数据。
串口通信模块的主要功能是接收中央控制器发送过来的数据;发送数据至中央控制器。数据通信采用GICP,根据GICP,中央控制器发送的数据长度是不固定的,介于10~58B之间,且数据中含有0x00。万能遥控器接收数据时,若单独采用串口查询方式和中断方式接收,由于不能以收到0x00作为判断消息数据发送结束的标志,故单独采用这两种数据接收方法不仅不能及时判断数据何时发送结束,而且易受干扰,导致万能遥控器接收到的数据与中央控制器实际发送的数据不一致。
针对以上问题,提出以中断接收嵌套查询接收的方式进行串口数据接收,不仅能够正确接收和处理任意长度的数据,而且具有较强的抗干扰性。串口中断接收嵌套查询接收的方式的流程图如图7-24所示。
(www.xing528.com)
图7-24 串口中断接收嵌套查询接收方式流程图
当串口收到数据后,单片机产生中断,进入中断服务函数,首先关总中断,然后利用for循环延时100ms,在延时函数中采用查询方式接收数据。经测试,100ms时间内,单片机可以正确接收120B连续的数据(实际要求每次接收58B数据),完全能够满足通信要求。当接收完数据后,将接收完成标志st置1,然后跳出中断服务函数。当主程序检测到st=1时,就调用解析函数对缓冲区内的数据进行解析。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。