电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

串口中断接收流程图

  • 资源ID:478149187       资源大小:30.01KB        全文页数:3页
  • 资源格式: DOC        下载积分:10金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要10金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

串口中断接收流程图

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 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几种数据包的例子:一般数据包: | 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是准确的,重新给定时器赋初值了。考虑到定时器有限,这个问题只能这样了,有更好的办法再改进。

注意事项

本文(串口中断接收流程图)为本站会员(大米)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.