社区
硬件/系统
帖子详情
有一问题已经扰我很长时间了:关于串口问题?急!!!
DongBeiXiNan
2004-04-11 03:31:40
有一问题已经扰我很长时间了:
1 我编的程序用WIN API调用串口串口与交换机通信(手工维护太累)
2 必须先用其他工具使用串口并关闭后,我的程序才可通过串口进行通信,否则阻塞不可写读。
3 程序中DCB已设置正确
4 若用串口控件就不会出现上述问题
...全文
49
6
打赏
收藏
有一问题已经扰我很长时间了:关于串口问题?急!!!
有一问题已经扰我很长时间了: 1 我编的程序用WIN API调用串口串口与交换机通信(手工维护太累) 2 必须先用其他工具使用串口并关闭后,我的程序才可通过串口进行通信,否则阻塞不可写读。 3 程序中DCB已设置正确 4 若用串口控件就不会出现上述问题
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhangnanonnet
2004-04-12
打赏
举报
回复
你试试一下的打开串口方式
ZComm::open(char *szPort,int Baud_rate, BOOL overlapped)
{
int retbuflength=0;
if (overlapped) { //异步方式打开串口
memset( &READ_OS, 0, sizeof( OVERLAPPED ) ) ;
memset( &WRITE_OS, 0, sizeof( OVERLAPPED ) ) ;
READ_OS.hEvent = CreateEvent( NULL, // no security
TRUE, // explicit reset req
FALSE, // initial event reset
NULL ) ; // no name
if (READ_OS.hEvent == NULL) return -1 ;
WRITE_OS.hEvent = CreateEvent( NULL, // no security
TRUE, // explicit reset req
FALSE, // initial event reset
NULL ) ; // no name
if (NULL == WRITE_OS.hEvent)
{
CloseHandle( READ_OS.hEvent ) ;
return -1 ;
}
idComDev=CreateFile( szPort, GENERIC_READ | GENERIC_WRITE,
0, // exclusive access
NULL, // no security attrs
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL|
FILE_FLAG_OVERLAPPED, // overlapped I/O
NULL );
olap=TRUE;
} //同步方式打开串口
else idComDev=CreateFile( szPort, GENERIC_READ | GENERIC_WRITE,
0, // exclusive access
NULL, // no security attrs
OPEN_EXISTING,
0, //is overlapped or no
NULL );
if (idComDev==(HANDLE) -1){
DWORD RR=GetLastError();
CloseHandle(idComDev) ;
if (olap){
CloseHandle( READ_OS.hEvent ) ;
CloseHandle( WRITE_OS.hEvent ) ;
}
fCOMMOpened=0;
olap=FALSE;
return (0);
}
set_baudrate(Baud_rate);
fCOMMOpened=1;
SetupComm(idComDev,11520,2048);
PurgeComm(idComDev, PURGE_TXABORT | PURGE_RXABORT |
PURGE_TXCLEAR | PURGE_RXCLEAR ) ;
SetCommMask(idComDev,EV_RXCHAR/* EV_RXFLAG*/ );
//set time out
SetTimeOut(10,100,500);
return (1);
}
BOOL ZComm::SetTimeOut(DWORD ReadIntervalTimeout,
DWORD ReadTotalTimeoutMultiplier,
DWORD ReadTotalTimeoutConstant)
{
COMMTIMEOUTS timeouts;
GetCommTimeouts(idComDev,&timeouts);
timeouts.ReadIntervalTimeout=ReadIntervalTimeout;
timeouts.ReadTotalTimeoutMultiplier=ReadTotalTimeoutMultiplier;
timeouts.ReadTotalTimeoutConstant=ReadTotalTimeoutConstant;
return SetCommTimeouts(idComDev,&timeouts);
}
ZComm::Close()
{
if (fCOMMOpened==1) {
fCOMMOpened=0;
CloseHandle(idComDev) ;
olap=FALSE;
if (olap){
CloseHandle( READ_OS.hEvent ) ;
CloseHandle( WRITE_OS.hEvent ) ;
}
return 1;
}
return 0;
}
int ZComm::set_baudrate(int baud_rate)
{
DCB dcb;
BOOL fsuccess;
fsuccess = GetCommState(idComDev, &dcb);
if (!fsuccess) return 0;
dcb.BaudRate =baud_rate;
dcb.ByteSize =8; //number of bits/byte, 4-8
dcb.Parity =NOPARITY;
dcb.StopBits =ONESTOPBIT;
//dcb.EvtChar=0x02;
//dcb.fNull=TRUE;
fsuccess=SetCommState(idComDev, &dcb);
if (!fsuccess) return 0;
return 1;
}
Sander
2004-04-12
打赏
举报
回复
Show your sourcecode.
rwdx
2004-04-12
打赏
举报
回复
看看你的代码,
DongBeiXiNan
2004-04-12
打赏
举报
回复
to zhangnanonnet(鱼欢) :
不行,read读出的是空格,write不起作用。
是否与其他工具应用通讯握手协议有关。
DongBeiXiNan
2004-04-11
打赏
举报
回复
关闭了
basboy
2004-04-11
打赏
举报
回复
你的程序每次打开了串口以后关闭句柄了吗
我的
串口
控制交付项目总结
我的交付项目总结单板
串口
控制项目是我进入公司的第一个独立交付项目,大体流程: 3.23日接到需求,总体流程看上去是非常复杂的,至少会有14个步骤,每个步骤实现相应的控制流程,共计约100多类
串口
命令;测试结果放入Excel中;(流程好复杂…,C#我刚入门半个多月,BBU和单板的操作具体咋搞啊…,先学习一下吧) 3.24-4.2熟悉总体控制流程,将
串口
命令按照功能划分,放到Excel中,摸索BBU和单
阿里、京东、字节跳动春招,Java岗offer不好拿?一文带你搞定
前言 以下内容均为二月面试真题整理,面试内容均来自阿里、京东、腾讯、字节跳动等一线大厂,由网友集合反馈整理! 如有雷同,请在评论区提醒,全部内容GitHub可查阅。 由于篇幅原因,内容会比较杂乱,程序猿们在阅读时请保持理智!!! 以下面试题我
已经
整理成文档,具体内容可以通过私信:面试资料 获取 下面开始正文分享: ZooKeeper篇 CAP定理: 一个分布式系统不可能同时满足以下三种,一致性(...
fpga用一个按键控制流水灯的启停_FPGA的8大技术要点,点进来看看?
1面积与速度的平衡与互换这里的面积指一个设计消耗 FPGA的逻辑资源数量,对于FPGA可以消耗的FF(触发器)和LUT(查找表)来衡量,更一般的衡量方式可以用设计所占的等价逻辑门数。速度指设计在芯片上稳定运行所能达到的最高频率,这个频率由设计的时序状况来决定,以及设计满足的时钟要求:PAD to PAD time 、Clock Setup Time、Clock Hold Time、Cl...
计算机最最最底层的 工作原理是怎么运行的
转载的这个
问题
从高中就开始疑惑,计算机究竟是如何理解人类思维,如何进行计算?我很想知道最最基本的工作原理,但是大学里好多课程,数字逻辑,计算机组成原理,只是从不同层次上解释了计算机的工作原理,很可惜的是,我并没有把知识穿起来。看了很多人的回答,大家也只是解释了一部分
问题
,没有完整的把计算机整个的抽象层次说清楚。在大学里我看到了 Charles Petzold的《编码 隐匿在计算机软硬件背后的语言...
有关汉字编码、拼音输入法 大搜罗
机内码国标码区位码 计算机处理汉字信息的前提条件是对每个汉字进行编码,这些编码统称为汉字编码。汉字信息在系统内传送的过程就是汉字编码转换的过程。汉字交换码:汉字信息处理系统之间或通信系统之间传输信息时,对每一个汉字所规定的统一编码,我国已指定汉字交换码的国家标准“信息交换用汉字编码字符集——基本集”,代号为GB 2312—80,又称为“国标码”。国标码:所有汉字编码...
硬件/系统
2,644
社区成员
17,232
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章