用mscomm控件编写串口通信出现error reading comm device错误-已解决

2023-05-16

一、问题描述

       用mscomm控件编写串口通信过程中,在消息响应函数OnComm函数下接受串口发送过来的数据时,在get_Input()函数会出现error reading comm devece 错误。具体代码如下:

void XXXDlg::OnCommMscommLaser()
{
	memset(chstrLaser, 0, 1024);    //chstrLaser为全局变量.

	short i = m_mscomLaser.get_InBufferCount();  //语句1.
	if(m_mscomLaser.get_CommEvent() == 2) //事件值为2表示接收缓冲区有字符.
	{
		/*m_recivedMsg = "";
		
		CString csstr = "";*/

		VARIANT InputData = m_mscomLaser.get_Input(); //语句2,读缓冲区.

		COleSafeArray csa = InputData; //VARIANT型变量转换为COleSafeArray型变量.

		//translate to byte class.
		DWORD size = csa.GetOneDimSize();
		for(long k = 0; k < size; k++)
			csa.GetElement(&k, chstrLaser + k);
	}

    // 进一步处理所接收数据......

	return;
}

       每次触发该函数时,语句1获取的接收缓冲区的数据长度为30,意味着接收缓冲区有长度为30的数据。但在语句2会出现上述错误提示,并且不会执行语句2以后的代码。

二、方法探索

1、起初以为是数据线的问题,通过换数据线、自己制作数据线,始终不能解决问题。

2、怀疑过通信设备有问题,也换了设备调试,还是出现同样的问题。

3、怀疑过通信协议没弄清楚。

4、等等......

三、解决办法

        用了诸多串口调试助手都失败后,发现了一个串口调试助手竟然能正常通信,后面我会提供该调试助手,那现在的问题可能是代码写得有问题,数据线和设备没问题。

        通过大量搜索,发现有一个解决方案是更新串口驱动,试了后发现真的可以,整整搞了一天终于解决了这个问题,真是无比激动。

        下面是解决方法:

1、下载串口驱动

        我的是usb转232的数据线,所以我下载了Prolific USB-to-Serial Comm Port 驱动,大家可以根据自己的实际情况下载相应驱动,这里我提供一下解决了我的问题的驱动:点击下载串口驱动。

2、更新驱动

驱动下载后,开始更新驱动:

a. 此电脑邮件点击管理->点击设备管理器->找到通过mscomm控件配置的串口

b. 右键该串口驱动,点击更新驱动程序软件->选择浏览计算机以查找驱动程序软件

 c. 点击浏览,找到下载的串口驱动

 d. 点击下一步,更新后上述问题解决。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用mscomm控件编写串口通信出现error reading comm device错误-已解决 的相关文章

  • 局域网内wakeonlan远程唤醒其它计算机

    背景 xff1a 需要管理多台计算机 xff0c 所有计算机在一个局域网内 xff0c 并且有的安装了Windows系统 xff0c 有的安装了Linux系统 我们想远程关闭和启动所有计算机 关闭计算机直接通过网络发生操作系统关机命令即可实
  • D3D中的三种Buffer

    在D3D中 针对视窗有三种Buffer 它们分别是 Color Buffer Depth Buffer和Stencil Buffer Color Buffer在D3D中又称为Render Target 意思是最后着色的目标Buffer 就是
  • 创建镜像(更新与构建镜像)

    创建镜像 有时从Docker镜像仓库中下载的镜像不能满足我们的要求 xff0c 此时可以基于这个镜像 xff08 基础镜像 xff09 封装一个自 己的镜像 两种方式 xff1a 更新镜像 xff1a 使用docker commit命令构建
  • (十)CMake链接已有的动态库

    使用一个已经存在的动态库 xff0c 需要用到CMake中两个命令 xff0c 分别是 xff1a link directoriestarget link libraries 下面先介绍以下两个命令的格式及其含义 xff0c 最后是一个使用
  • ROS入门21讲笔记(四)自定义话题消息类型和使用

    除了ROS内置消息外 xff0c 我们还能自定义消息 这一次我们不再与海龟较劲 xff0c 而是自定义一个订阅消息类型 xff0c 让订阅者和发布者通过这个结构进行数据通信 一 如何自定义话题消息 xff1f 话题消息是以 msg结尾的文件
  • ROS入门21讲笔记(七)自定义消息消息类型和使用

    这一节主要是学习如何自定义一个服务类型并使用它 一 如何自定义服务消息 xff1f 服务数据是以 srv结尾的文件 xff0c 是一个用于描述ROS服务信息简单文本文件 xff0c 用于生成不同语言消息的源代码 srv文件存放在packag
  • ROS入门21讲笔记(十二)常用可视化工具

    一 QT类可视化工具 1 1 rqt console rqt console 为显示和过滤ROS信息提供了一个GUI插件 1 2 rqt plot rqt plot使用不同的绘图后端提供数值可视化功能 1 3 rqt Image view
  • (二)CMake 使用头文件

    一 include directories 该命令用于增加一个编译头文件 其基本语法是 xff1a include directories span class token punctuation span span class token
  • cargo 宏展开遇到的问题

    最近学习rust xff0c 看到宏展开命令 span class token comment 单独文件 span rustc Z unstable options pretty span class token operator 61 s
  • 工程师笔记|常见的嵌入式软件工程师面试题

    Q xff1a 什么是ISR xff1f A xff1a ISR 是指中断服务程序 这些是存储在特定内存地址的函数 xff0c 当发生某种类型的中断时会调用这些函数 Cortex M 处理器系列具有管理中断执行的 NVIC Q xff1a
  • 计算机中的速率、带宽、时延、利用率解读

    计算机网络的性能一般是指它的几个重要的性能指标 但除了这些重要的性能指标外 xff0c 还有一些非性能特征 xff08 nonperformance characteristics xff09 也对计算机网络的性能有很大的影响 那么 xff
  • 手把手教你写链表,小学生看了都说好~

    摘要 xff1a 明明我们在之前已经接触了数组 xff0c 感到数组已经是万能的数据存储位置了 但是 xff0c 如果我们一直在使用比较复杂的数据 xff08 也就是比较多的数据时 xff09 xff0c 肯定会感到很反感 因为对于数组这种
  • 15-JavaScript高级程序设计-创建对象

    一 创建对象 创建单个对象 xff1a Object构造函数 new Object 对象字面量 xff08 参见8 Object amp Array xff09 创建多个对象 xff1a 以下7种方式 1 工厂模式 span class t
  • FreeRtos源码分析之启动任务调度vTaskStartScheduler(二)

    一 概述 FreeRtos在创建任务之后 xff0c 需要启动任务调度器才能使任务正常有序的运行 任务调度器的开启依赖于底层硬件 xff0c 对于CortexM3内核而言 xff0c 任务调度器需要用到中断和滴答定时器 FreeRtos在对
  • FreeRtos源码分析之任务状态管理(三)

    一 概述 FreeRtos的每一个任务都有一个对应的优先级 xff0c 较高优先级的任务具有优先运行的权利 xff0c 当高优先级的任务调用系统的延时函数或者需要阻塞等待某些信号时 xff0c 会让出CPU的使用权 xff0c 从而使低优先
  • FreeRtos源码分析之任务切换原理(四)

    一 CortexM3中断优先级 CortexM3支持多达240个外部中断和16个内部中断 xff0c 每一个中断都对应一个中断都对应一个优先级寄存器 每一个优先级寄存器占用8位 xff0c STM32采用其中的高四位来表示优先级 xff0c
  • ubuntu切换python版本

    一 概述 在ubuntu环境下进行嵌入式开发 xff0c 我们在进行不同的项目开发时 xff0c 可能会遇到python环境不统一的情况 这时 xff0c 我们可以通过update alternatives来方便更新ubuntu下的pyth
  • 本地Windows远程连接阿里云服务器图形界面(使用vnc viewer)

    文章目录 前言Motivation of writing1 场景说明2 给阿里云服务器安装图形界面3 给服务器配置VNC Server4 让服务器放行5901端口5 本地windows配置vnc viewer总结 标题 xff1a 本地Wi
  • 十分钟教你配置frp实现内网穿透

    十分钟教你配置frp实现内网穿透 一 frp的作用 利用处于内网或防火墙后的机器 xff0c 对外网环境提供 http 或 https 服务 对于 http https 服务支持基于域名的虚拟主机 xff0c 支持自定义域名绑定 xff0c
  • 5.7.4 ARM微控制器外设:I2C编程实例—加速度传感器

随机推荐

  • Jetson带CUDA编译的opencv4.5安装教程与踩坑指南,cmake配置很重要!

    环境 xff1a Jetson NX 43 Jetpack4 4 43 Ubuntu18 04 0 jtop前后对比1 安装教程2 踩坑指南2 1 cv2 error OpenCV 4 4 0 tmp pip build 2do2xloi
  • C++ 获取系统当前时间

    C 43 43 获取系统当前时间 c 43 43 time函数 C 43 43 的日期和时间函数获取系统当前时间实例大体思路具体使用与解析四 回顾与梳理 c 43 43 time函数 C 43 43 的日期和时间函数 C 43 43 标准库
  • KAFKA结构图

    转载 https blog csdn net sillyzhangye article details 86181323 utm medium 61 distribute pc relevant none task blog BlogCom
  • vue-企业微信绑定和解绑

    一 企业微信绑定解绑 项目中需要对账号进行企业微信的绑定和解绑 企业微信页面显示 xff1a span class token operator lt span FormItem label span class token operato
  • cannot currently show the desktop 树莓派 vnc viewer 无法显示的解决方法

    文章由来 2021 04 24 xff0c 周六 xff0c 一个人在家没什么事情 xff0c 突然发现了自己的树莓派4B xff0c 那个时候就买来的时候用了一会 xff0c 今天突然想用它搭一个服务器 那个时候玩的时候资料没有整理 xf
  • AI就是闭上眼想要一份凉皮,睁开眼就会有一份凉皮摆在眼前

    回答这个问题之前 xff0c 先听下这段对话 xff1a 你愿意让别人帮你干活吗 xff1f 愿意 xff01 那么你愿意让别人干你的活吗 xff1f 愿意 最后问你 xff0c 你愿意让别人替代你吗 xff1f 作为一个对AI没有过深的了
  • 什么是主线程?

    主线程 是执行主 main 方法的线程 单线程程序 java程序中只有一个线程 执行从main方法开始 从上到下依次执行 主线程的概念 JVM执行main方法 main方法会进入到栈内存 JVM会找操作系统开辟一条main方法通向cpu的执
  • Python爬虫Xpath方法返回值有[]引号等问题解决方法

    在搞Python爬虫的时候会使用到Xpath方法 xff0c 比如在爬取某个链接的时候返回值会是 39 http www baidu com demo jpg 39 示例链接 而后面的代码会因为有这几个字符串而受到影响 解决方法 xff1a
  • error: no configuration has been provided, try setting KUBERNETES_MASTER environment variable

    k8s报error no configuration has been provided try setting KUBERNETES MASTER environment variable错误解决方法1 18 1版本 使用vi编辑器打开
  • ubuntu 安装PHP+Apache

    安装Apache sudo apt install apache2 安装PHP 7 4 Ubuntu 20 04默认安装的版本 sudo apt install php libapache2 mod php 安装完成重启Apache服务 s
  • ASCII码判断大小

    ASCII码的值大小排列 xff1a a z gt A Z gt 0 9 在小写字母中z最大 xff0c a最小 在大写字母中Z最大 xff0c A最小 在0到9中 9最大 xff0c 0最小 故选D选项
  • 二进制运算相关的题目

    将二进制数01011010 转换成十进制数 xff0c 然后将十进制数 x 2 得到的值将其化为二进制数 01011010 十进制数为90 180 二进制数为10110100 故选C选项
  • 重装Ubuntu系统及系列软件安装

    重装Ubuntu系统及系列软件安装 1 安装ubuntu20 04 03系统下载Ubuntu20 04 03系统更换系统apt的源 2 CUDA和cudnn安装下载CUDA安装包并安装 3 pycharm的安装 4 conda的安装 5 兼
  • Qt中UI对象只能在主线程中操作,那如何在子线程中操作UI呢

    为什么在Qt中UI对象只能在主线程中操作 在Qt中 xff0c UI对象只能在主线程中操作 xff0c 因为Qt采用了事件循环机制 xff0c UI事件 xff08 如鼠标点击 键盘输入 xff09 都是在主线程中处理的 如果在子线程中直接
  • python学习记录

    python学习记录 python学习python运行顺序类的使用模块导入import不同级模块导入模块导入的重名问题 xff1a 注意的点 修饰器 正则表达式 python学习 本文是关于python的学习记录文章 比较基本 比较潦草 p
  • 案例二:基于MapReduce分词统计

    案例二 xff1a 基于MapReduce的分词统计 一 准备条件 xff1a 1 数据源 xff1a 六个 txt 诗经文件 2 Hadoop集群环境 五 功能实现 前提准备 xff1a 引入类库将Hadoop包解压 xff0c 并进入相
  • RHEL8.3 配置VNC 远程

    一 安装VNC 选取比较流行的tigervnc dnf install tigervnc span class token operator span server tigervnc span class token operator sp
  • 一次使用Dockerfile构建tomcat镜像时遇到的Linux内核问题

    当前版本 span class token punctuation span root 64 zyrox test alpine images span class token punctuation span span class tok
  • Java中Lambda表达式的使用

    Lambda表达式是Java SE 8中一个重要的新特性 lambda表达式允许你通过表达式来代替功能接口 lambda表达式就和方法一样 它提供了一个正常的参数列表和一个使用这些参数的主体 Lambda表达式还增强了集合库 Java SE
  • 用mscomm控件编写串口通信出现error reading comm device错误-已解决

    一 问题描述 用mscomm控件编写串口通信过程中 xff0c 在消息响应函数OnComm函数下接受串口发送过来的数据时 xff0c 在get Input 函数会出现error reading comm devece 错误 具体代码如下 x