串口中断接收流程图
3页1、01000000开始,接收数据放在UART_Data_Buf中ST_FlagADDR_FlagLEN_FlagF-LENUART_Data_Buf=F_STUART_Data_Buf=F_ADDR111F_LEN=UART_Data_BufLEN_Flag=1111接收数据包放在Data_BufST_Flag=1ADDR _Flag=1结束UART_Data_Buf=F_END清除所有标志位等待下一次串口数据Decoder_Flag=1#define F_ST 0x02 /帧头 #define F_END 0x03 /帧尾 #define F_Receive_OK 0x05 /命令帧 接收正确命令帧 #define F_Receive_Error 0x06 /命令型 接收错误重发命令帧#define F_Overtime 0x09/命令型 接收超时重发命令帧bit ST_Flag; /帧头标志位:已经接收到帧头的标志bit ADDR_Flag; /地址帧标志位:地址帧正确,开始接收数据包bit LEN_Flag; /长度帧标志位:长度帧为1,已经知道数据帧的长度了,开始接收数据帧bit
2、 Receive_OK_Flag;/接收成功标志位:为1就有要解码的数据包,并且发回应数据包。bit Receive_Error_Flag;/接收错误标志位:数据解码或者接收出错时置1,要求主机重新发数据bit Receive_Overtime_Flag; /接收超时标志位:bit Button_Flag; /按键状态标志位:bit Send_Flag; /发送状态标志位:有数据在发送bit Send_Overtime_Flag; /发送超时标志位:帧: 帧头 | ID号 | 长度帧 | 数据帧1 | + | + |数据帧n| 校验和 | 结束帧 |值: 0x02 | | X | | | 0x03 |字节数: 1 | 1 | 1 | 18 | 1 | 1 |长度帧=n位数据+1位校验和校验和=n位数据和的低8位命令帧: 接收成功: F_Receive_OK =05 接收错误: F_Receive_Error=06 接收超时: F_Overtime=09数据帧是ASCII码表示,范围在0x300x39、0x410x46、0x610x66 1 9 、 A F 、 a f几种数据包的例子:一
3、般数据包: | 02 | 01 | 05 | 34 31 46 47 | f2 | 03 | 帧头 地址帧 长度帧 数据帧 校验和 帧尾成功命令包: | 02 | 01 | 03 | 05 05 | 0a | 03 | 帧头 地址帧 长度帧 数据帧 校验和 帧尾错误命令包: | 02 | 01 | 03 | 06 06 | 0c | 03 | 帧头 地址帧 长度帧 数据帧 校验和 帧尾超时命令包: | 02 | 01 | 03 | 09 09 | 12 | 03 | 帧头 地址帧 长度帧 数据帧 校验和 帧尾整个程序的过程:接收数据:1、 收到第一个数据是帧头,ST_Flag=1,不是就放弃2、 收到第二个数据,如果ST_Flag=1、ADDR_Flag=0,表示这个数据是地址帧,如果地址帧正确,表示是自己的数据包,则ADDR_Flag=1,并且开40ms的定时,时间到了数据包还没有接收完,就告诉上位机超时了,重新发数据。否则不是自己的数据包,则ST_Flag=0;退出接收状态3、 收到第三个数据,如果ST_Flag=1、ADDR_Flag=1、LEN_Flag=0,表示这个是自己的数据包的长度帧,存放在数据缓冲区,并且LEN_Flag=1;4、 收到第四个数据,ST_Flag=1、ADDR_Flag=1、LEN_Flag=1,表示现在收到的是数据帧,根据F_LEN的大小来判断数据是第几个(F_LEN收到一个数据就自减),并且存放再相应的位子5、 收到后面的数据根据4来判断6、 再收到数据时,F_LEN=0了,表示这个数据是帧尾了,判断是否是帧尾,是则表示接收成功,让主循环分析数据包Receive_OK_Flag=1;不是则要求上位机重新发送Receive_Error_Flag=1。发送数据:1、 发送数据打开定时器T0,Send_Flag=1,2、 如果400ms还没有收到成功接收的回应帧就重新发送一次数据3、 定时器要在主循环中常开,避免接收了数据就把定时器关闭了,可能对方都没有收到数据程序中有个冲突:发送数据的时候同时要接收数据,那么发送数据的时候400ms定时器可能会不准确,但是接收数据的时候定时是40ms是准确的,重新给定时器赋初值了。考虑到定时器有限,这个问题只能这样了,有更好的办法再改进。
《串口中断接收流程图》由会员大米分享,可在线阅读,更多相关《串口中断接收流程图》请在金锄头文库上搜索。
高中数学极坐标与参数方程知识点汇编及题型汇总
区农委岗位目标责任制履行总结
焊接课程设计说明书
2023年财务人员发言稿(3篇)
崇左市标准质量品牌建设项目创业计划书【范文参考】
ABB定位器说明书
2019七年级英语上册 Unit 5 Do you have a soccer ball Section B练习习题 新人教目标版
建筑起重机械司机考试历年真题汇总含答案参考60
中级财务会计一期末复习资料
现在正流行的六类电视背景墙
北师大版小学数学四年级下册第三单元《小数乘法》教案
同学你好的心得体会作文5篇
闭门即是深山读书即是净土-1500字作文
[甲]当余之从师也负箧曳屣行阅读附答案
房屋装修工程保修合同范本
年上半年全市纪检监察工作总结
资市中学先进团委申报材料
知名好书海底两万里读后感
第二届江苏省混凝土职业技能大赛竞赛规则
大学生实习报告范文3000字5篇
2023-05-26 3页
2023-04-15 2页
2023-09-19 5页
2023-05-11 13页
2024-02-27 14页
2023-02-13 5页
2023-04-10 8页
2023-03-30 19页
2022-08-10 9页
2022-09-02 4页