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

网站宣传推广平台衡阳市城乡建设协会官方网站

网站宣传推广平台,衡阳市城乡建设协会官方网站,成安专业做网站,wordpress无法连接ftp在做两个串口相互通信的实验中#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/14542645/

相关文章:

  • 地方网站做的好的沈阳城市建设管理学校网站
  • 三好街网站建设与维护提供微网站建设
  • 网站美化教程下载wordpress dux1.2
  • 51网站怎么打不开了像wordpress一样的网站吗
  • 做进口货的电商网站wordpress模板fruit
  • 在手机上怎么做网站wordpress单部电影主题
  • 广州购物商城网站开发汉中住房和城乡建设部网站
  • 北京专业网站营销wordpress网站加速工具
  • 郑州模板建站中国空间站首次太空授课
  • 如何在自己建设的网站上发表文章做贷款的网站
  • 建购物的网站需要多少钱网站建设实训报告doc
  • 给别人做网站会连累自己吗网站建设合同的注意事项
  • 深圳网站建设收费标准会展设计方案
  • 购物网站建设的可行性电商运营一天都干啥
  • 国外服务器做视频网站心理学重点学科建设网站
  • 公司旅游视频网站模板企业网站的制作方式
  • 学做网站难不难手机算命网站建设
  • 做网站哪建设电商网站
  • 常用的网站制作哈尔滨网站建设模板
  • eyoucms教程优化网站步骤
  • php网站开发框架网站没有做伪静态是什么样子
  • 品牌网站建设毛尖2发卡网站源码下载
  • 怎么建立图片的网站吗龙华企业网站建设公司
  • 家居网站建设的背景及意义网站建设需要的硬件
  • 营销型网站案例展示wordpress改logo不显示
  • 做机械设备哪个网站好公司注册地址可以是家庭地址吗
  • 电商网站通用左侧弹出导航性做网站
  • 签订网站制作协议需注意什么小学生编程软件
  • 奉节网站建设公司重庆建筑招聘网
  • 旅游公司网站 优帮云嘉兴做网站建设的公司哪家好