社区
单片机/工控
帖子详情
串口有时接收不到数据是怎么回事?
eacho
2005-12-03 10:05:28
大家好,我用COM1接收数据,平常都没问题,就是偶尔会突然没有数据发送过来,用串口精灵也接收不到任何数据,这时我只要把COM1停用然后再启用就又可以正常接收数据了。
小弟对串口了解很浅,问题又很急,向大家求救。
另,操作系统是XP.
...全文
2358
19
打赏
收藏
串口有时接收不到数据是怎么回事?
大家好,我用COM1接收数据,平常都没问题,就是偶尔会突然没有数据发送过来,用串口精灵也接收不到任何数据,这时我只要把COM1停用然后再启用就又可以正常接收数据了。 小弟对串口了解很浅,问题又很急,向大家求救。 另,操作系统是XP.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
eacho
2005-12-04
打赏
举报
回复
mqy80(mqy):
你看我上面贴的代码,有catch(Exception err),在IF之前有个try的,只不过我拷的时候没拷全,
谢谢你的关注!
mqy80
2005-12-04
打赏
举报
回复
会不会此时已经出错了,但是由于没有try语句,被系统忽略了?如果不用if语句,直接msgbox一下portOpen的值,结果会怎样?
eacho
2005-12-04
打赏
举报
回复
if( _AxMSComm.PortOpen)//AAAA
{
_AxMSComm.PortOpen = false;
}
我不明白的是,明明串口已被其他程序打开,为什么上面那个判断进不去?_AxMSComm.PortOpen返回的是false
eacho
2005-12-03
打赏
举报
回复
C#中打开和关闭串口应该怎么写啊?
mqy80
2005-12-03
打赏
举报
回复
PortOpen是只读吧?如果判断PortOpen为True,可以先调用Close()关闭端口,然后调用Open()打开端口试试
eacho
2005-12-03
打赏
举报
回复
波特率、数据位等参数都没错,我在绝大多数时间里接收是正常的,但运行个几天就会有出现一次什么数据也接收不到的情况,这时把COM1停用再启用又正常了。
eacho
2005-12-03
打赏
举报
回复
if( _AxMSComm.PortOpen)//AAAA
{
_AxMSComm.PortOpen = false;
}
_AxMSComm.InBufferSize=40;
_AxMSComm.InputLen=25;
_AxMSComm.RThreshold=1;
_AxMSComm.DTREnable=true;
_AxMSComm.EOFEnable=false;
_AxMSComm.OutBufferSize=512;
_AxMSComm.NullDiscard=false;
_AxMSComm.RTSEnable=false;
_AxMSComm.Settings=sSettings;
_AxMSComm.PortOpen = true; BBBB
catch(Exception err)
{
MessageWindow.Show(err.Message,StaticVariable.MessageBoxTitle,MessageBoxButtons.OK, MessageBoxIcon.Error);
}
以上是初始化代码,我先用串口工具打开串口,然后执行我的程序,跟到AAAA的时候,没有进到IF块里,而直接往下走了,然后到BBBB的时候就出错了。
我判断串口是否已打开的方法不对吗?
hunter_32
2005-12-03
打赏
举报
回复
傳輸速率,檢查位,數據位,停止位,xon/xoff 等信息 還有 cts dsr dsr dtr rts 等信息是否還跟你的匹配
hunter_32
2005-12-03
打赏
举报
回复
看看串口的參數是否改變了用mode就可以查看了
mqy80
2005-12-03
打赏
举报
回复
是否在检查PortOpen前关闭了串口?
mqy80
2005-12-03
打赏
举报
回复
如果正常操作,自己打开端口,再查询portOpen返回什么?
eacho
2005-12-03
打赏
举报
回复
我现在怀疑是我的程序打开时串口已被别人打开,我刚才跟了一下程序,发现我写的判断串口是否已打开的代码不起作用,明明我用别的工具占用了COM1,程序判断PortOpen时却返回False,不知何故。
mqy80
2005-12-03
打赏
举报
回复
是不是数据发送源的问题?系统给出的触发指令不正确导致没有数据传送?或者使用中断读取数据,由于数据接收处理延时,造成数据拥塞,可以考虑使用查询方式以匹配处理速度
eacho
2005-12-03
打赏
举报
回复
顶
mqy80
2005-12-03
打赏
举报
回复
应该是用createFile(),具体语法可以查help,MSDN里面有一个串口应用实例针对C#,以前用VB6.0,有个Mscomm很好用的,很多函数和参数都集成好了
flowercity
2005-12-03
打赏
举报
回复
一、是否有硬件流的问题?如果有硬件握手信号要求,用3根线来通信是不稳定的
二、串口是否关闭了?如果不能接受的情况下,请查看串口状态如何
eacho
2005-12-03
打赏
举报
回复
to: yangyzqo(欺世盗名来灌水)
我觉得不是程序的问题,我的程序接收不到数据的时候用串品精灵一类的工具也接收不到,
调试的时候根本就不触发,没有任何数据传过来。
yangyzqo
2005-12-03
打赏
举报
回复
一步一步调试一下看看了,
很可能是程序的问题
eacho
2005-12-03
打赏
举报
回复
up
串口
通信-中断法
数据
接收
串口
通信-中断法
数据
接收
,单片机开发,好资料,介绍详细
串口
调试工具 可以发送和
接收
报文
数据
串口
调试工具 可以发送和
接收
报文
数据
分享自己的
串口
接收
GUI可实时观察
数据
图像-MyScomTest可实时显示
数据
.rar
分享自己的
串口
接收
GUI可实时观察
数据
图像-MyScomTest可实时显示
数据
.rar 做这个软件的想法是这样的 先是阅读了飞哥的
串口
收发助手程序 其中 在第二版书中的P512页末端提出了一个
串口
接收
数据
的要求 即 假设计算机与某硬件设备用
串口
相连 设备每隔固定时间(我这里是5mS 速度非常快)通过
串口
给计算机发送
数据
这帧
数据
中包含有 帧头 两字节 0x55 0xAA
数据
字节数20 一共每帧22个
数据
飞哥提出的是仅用
串口
的定时器定时读取的方法 并且他说 “经实践证明是可以的” 费劲九牛二虎之力我把它实现了 还是挺艰辛的 程序刚刚完成基本调试 代码也不是特别整齐 我用单片机做上位机发送
串口
数据
按一帧20个
数据
并 2个帧起始位 帧发送间歇时间是定时的5mS 为什么要做这个东西呢?因为 这个做法是很有意义的 实时地观察采样
数据
我参加的智能车比赛中就意识到 上位机调试 看
数据
曲线十分重要 否则 不知道参数的变化情况 怎么调试? 大概描述一下这个程序 STM32底层A/D转换采样 通过DMA连接片上USART 定时地发送
数据
到上位机 其中我对一个通道进行采样 采样十次 即同一个传感器 一共20个
数据
(STM32是12位的片上AD 参考电压3.3V)
数据
传入Matlab的
串口
中 用矩阵相乘的方法求出平均值 后plot到axes图上 由于是定时器触发的读取
数据
函数 那么每次读取到的
数据
有以下几种情况: ||Data, Data,StartByte1,StartByte2,Data,...,StartByte1,StartByte2|| ||Data, Data,StartByte1,StartByte2,Data,...,StartByte1|| ||Data, Data,StartByte1,StartByte2,Data,...,Data|| %这一次定时器定时
接收
的到的
数据
末尾的最后一帧的Data不满20个 不够一帧 ||StartByte1,StartByte2,Data,...,Data,Data,StartByte1,StartByte2|| %这次读到的
数据
末尾只有帧头的2位标志
数据
连原始
数据
全部都得在下一次定时读取中才能读得到 情况比较多 即一帧的
数据
可能会被中间间断成2次读取!每一次定时读取的时候 就意味着至多会有2帧
数据
是不完整的! 大家一般的想法大概就是丢失被中断的帧 这样做程序简洁 方便读 但不可避免地会丢失掉一些
数据
我在这里耽误了很久 写了很多段程序代码来完整地恢复了这些被打断的
数据
(吹毛求疵吧 但我觉得如果在非常严格的
数据
观察里是有意义的) 程序有时还是有些不知道为什么的BUG 工科人 表达能力不行 分享一个小作品 可能程序写得比较乱 大家看不明白 或运行不了 有需要就问吧 使用方法 我把STM32 工程里的USER文件放进来了 整个工程太大放不下 连接STM32 ADC1 通道15到外设 把USART1接到电脑上 Matlab 打开GUI 'serial_communication2' ‘打开
串口
’ OK 看看
数据
吧 (有时可能会Matlab报错 关闭再重新执行一次GUI 这BUG一直不知道错在哪)
uartassist
串口
调试工具 可设置波特率
串口
号
接收
频率 十六进制等 ASC
uartassist
串口
调试工具 可设置波特率
串口
号
接收
频率 十六进制等 ASC
彻底解决
串口
数据
误装鼠标的问题.rar
彻底解决
串口
数据
误装鼠标的问题! 当电脑开机如果
串口
有
数据
发来,会被操作系统识别为
串口
鼠标,从而误装驱动,影响鼠标正常工作,本案能彻底解决该问题!
单片机/工控
27,510
社区成员
28,796
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章