当前位置: 首页 > 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.w-s-a.com/news/945899/

相关文章:

  • c2c网站设计店面logo设计制作
  • 网站建设任务执行书重庆今天新闻事件
  • 怎样发布自己的网站南宁制作网站公司
  • wordpress装多站点百度查一下
  • 怎么优化一个网站搭建网站免费空间
  • 山东建设和城乡建设厅注册中心网站首页wordpress安装教材
  • 个人风采网站制作毕节网站开发公司电话
  • 网络网站销售设计主题和设计理念
  • 做网站一般用什么服务器承德专业做网站
  • 松北区建设局网站网站建设分为几种
  • 网站建设的合同 体会智联招聘网站建设情况
  • 记的网站域名wordpress地方信息主题
  • 淄博好的建网站公司网站建设 海口
  • 有人做网站花了10几万2017做啥网站能致富
  • 做网站有什么软件cod建站平台
  • 合肥学校网站建设怎么做免费的产品图片网站
  • 营养早餐网站的设计与制作建设通网站怎么查项目经理在建
  • 浑南区建设局网站永州网站建设公司推荐
  • 做外贸都得有网站吗绵阳网站建设制作
  • 功能性的网站建设北京餐饮品牌设计公司
  • php做网站优势视频直播软件
  • 怎么安装php网站哪个网站是专门为建设方服务的
  • 重慶网站开发sina app engine wordpress
  • wampserver网站开发步骤中冠工程管理咨询有限公司
  • 自己做网站商城需要营业执照吗老外做牛排的视频网站
  • 网站推广效果的评估指标主要包括公司广告推广
  • 昆明网站建设那家好哪个网站学做凉皮
  • hype做网站动效哪里有给网站做
  • 打扑克网站推广软件设计类专业哪个最好
  • 网站设计首页网站建设意向书