当前位置: 首页 > news >正文

广告建设网站长沙企业展厅设计公司

广告建设网站,长沙企业展厅设计公司,动漫专业最好的学校,网页素材提取在做两个串口相互通信的实验中#xff0c;当发送频率快一点时偶尔会遇到以下情景#xff0c;即一次send中把原数据拆成两份发送#xff0c;就会导致CRC校验错误。下图中6字节数据拆成42是把SetRThreshold()阈值设为2#xff0c;当设为1的情况下则会拆成51。 一开始以为是缓…在做两个串口相互通信的实验中当发送频率快一点时偶尔会遇到以下情景即一次send中把原数据拆成两份发送就会导致CRC校验错误。下图中6字节数据拆成42是把SetRThreshold()阈值设为2当设为1的情况下则会拆成51。 一开始以为是缓冲区溢出问题然而并不是。真正的原因出在MFC的COMM组件的OnComm响应函数上即一次发送的报文会被响应两次检测阈值时先会响应阈值后面的数据再次响应。 对于此问题有两种方法 第一种是在报文前后加上固定的包头包尾当数据断开时响应函数分别会收到一个带包头的和一个带包尾的数据将它们拼在一起即可。但这种方法的问题是有可能被截断的数据刚好也同时带有包头包尾因此还需要加一步CRC校验比较麻烦。 第二种方法比较简便思路是延迟接收即OnComm一旦响应后不急着接收数据而是过一段时间再接收则可以保证延迟接收的数据是完整的。 使用第二种方法需要使用MFC的定时器功能步骤如下。 设置定时器 /* comm控件的响应函数 */ void CMODBUS_CRCDlg::OnOnCommMscomm1() {SetTimer(1,50,NULL); //表示1号定时器、计时50毫秒 }使用50ms是因为基本上能保证收到完整的串口数据且大于发送频率。 编写定时逻辑 对选择的类右键ClassWizard找到WM_TIMER并引入响应函数OnTimer。 在OnTimer里编写定时器停止的逻辑。 void CMODBUS_CRCDlg::OnTimer(UINT nIDEvent) {switch (nIDEvent){case 1:receiveData();KillTimer(1);break;default:break;}CDialog::OnTimer(nIDEvent); }nIDEvent表示定时器的id每当满50ms时一号定时器就会触发OnTimer事件设置KillTimer(1)即为触发一次否则将反复触发。 receiveData()为接收数据后所做的处理包括拆包、CRC校验、进行展示等环节。 补Qt遇到类似问题的解决方法
http://www.hkea.cn/news/14461324/

相关文章:

  • 网站做的好赚钱吗网站追加备案
  • 专业的网站开发建设北京网站建设设计公司哪家好
  • 东莞网站开发后缀南庄建网站服务
  • 自己用自己电脑做网站空间绿色网站模版
  • 个人网站设计过程网站建站行业公司主页建设
  • 营销型网站建设电话wordpress唯美破解主题
  • 电子商务电商网站饿建设做百度移动端网站排名
  • 雏鸟短视频app软件下载网站定兴网站建设公司
  • 重庆网站seo分析电子商务网站开发的主要支撑组件
  • 网站建设与开发定制个人网站素材图片
  • 程序员做网站美工能过关吗网站数据修改
  • 免费软件下载网站免费软件下载网站网站访问很慢
  • 事业单位网站备案流程免费域名网站黄
  • 西安大兴医院网站建设谷歌网页翻译
  • 搭建网站的架构dede网站模板页在什么文件夹
  • 站酷网电脑版网站建设是什么时间段申请域名
  • 网站建设虚线的代码wordpress报表模板下载
  • 深圳网站制作的公司哪家好wordpress 网站关键词
  • 河南省住房和城乡建设门户网站如何将百度地图加入网站
  • 徐州市城乡建设局网站首页外国黄冈网站推广平台
  • 襄阳网站制作品牌seo如何优化
  • 南通做网站的花云做公益网站的说明
  • 壶关网站建设网站开发成本报表
  • 网站开发案例php线上推广销售渠道
  • 网站建设运营属于经营范围中企动力天津科技有限公司
  • 网站企业备案代理企业信息系统的功能和特点
  • 网站展示型广告餐饮店如何引流与推广
  • 给朋友做的相册网站没有了广州中小学安全教育平台
  • thinkphp5菜鸟教程系统优化的方法
  • 专门网站建设平板电脑可以做淘宝网站吗