社区
网络及通讯开发
帖子详情
串口同步通信阻塞问题
haha0909
2013-05-29 03:08:56
最近在修改一个程序,是串口通信的,现在遇到这样一个问题:运行老版本(没修改前的程序)后,再运行新版本的程序就挂死,必需重启电脑后新版才能正常运行。调试发现 WriteFile(hComm ,&CheckSection, 1, &lrc, NULL ); 这条语句一直等待。貌似老版本占用着COM口未退出,又因为是同步的,所以新版的WriteFile就不能执行,一直等待!请问要怎么使老版本占用的COM退出来呢?
...全文
252
4
打赏
收藏
串口同步通信阻塞问题
最近在修改一个程序,是串口通信的,现在遇到这样一个问题:运行老版本(没修改前的程序)后,再运行新版本的程序就挂死,必需重启电脑后新版才能正常运行。调试发现 WriteFile(hComm ,&CheckSection, 1, &lrc, NULL ); 这条语句一直等待。貌似老版本占用着COM口未退出,又因为是同步的,所以新版的WriteFile就不能执行,一直等待!请问要怎么使老版本占用的COM退出来呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
我不懂电脑
2013-06-03
打赏
举报
回复
在老版本退出时关闭串口用closefile就可以了
「已注销」
2013-06-02
打赏
举报
回复
是方法,不是函数。
「已注销」
2013-06-02
打赏
举报
回复
这个很简单,就是每次执行一条命令就关闭串口。关闭串口的时候条用一个函数,用application.DoEvent();这样就不会发生死锁了。
繁华落尽空
2013-05-31
打赏
举报
回复
加一个PCOM的DLL,用DLL中的sio_close(int port);关闭串口,port为串口号
UART与USART区别 (
串口
同步
通信
和异步
通信
)
本文介绍了UART(通用异步收发器)与USART(通用
同步
/异步收发器)的区别。USART相较于UART增加了
同步
通信
的功能,并能够提供主动时钟信号。在异步
通信
中两者并无区别,但在
同步
通信
中,USART能作为SPI接口使用。此外,还讨论了单工、半双工及全双工
通信
的不同。
STM32 HAL库之
串口
详细篇(
阻塞
、扫描、中断、DMA)
本文围绕STM32
串口
通信
展开,先介绍并行与串行
通信
原理、优缺点及分类,对比UART和USART,强调STM32的USART注意事项。接着阐述
串口
基础配置,包括模式、参数设置。还详细讲解
阻塞
发送、扫描接收、中断接收、DMA收发等功能的相关函数及代码实现,最后提及printf实现参考。
STM32—
串口
通信
本文详细介绍了
通信
基础知识,包括
同步
通信
、异步
通信
、串行与并行
通信
方式的特点,以及USART、RS-232、RS-485等协议。重点讲解了STM32的
串口
通信
实验,涉及波特率配置、数据帧格式、流控机制和相关寄存器操作,以及如何通过HAL库实现
串口
发送和接收功能,还讨论了LED灯控制实验的要求和
串口
扩展的应用。
C++使用boost库编写
串口
同步
通信
代码
本文介绍使用Boost.Asio实现
同步
串口
通信
的示例代码。说明了
同步
操作核心方法,包括
阻塞
式写入、分块读取及超时控制,采用deadline_timer防止永久
阻塞
。还提及数据接收策略、错误处理,给出编译命令,提供
同步
与异步选择建议及扩展建议,适用于简单
串口
测试等场景。
VC++:
串口
同步
通信
博客介绍了VC++
串口
同步
通信
中数据发送的注意事项,以modbus发送数据为例,指出特定数据用字符串方式发送不成功,应采用十六进制方式。还说明了
串口
调试助手需16进制发送的原因,最后提到
同步
通信
适合小数据量,但会
阻塞
线程,建议用异步
通信
。
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章