完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#define _CRT_SECURE_NO_WARNINGS
#include #include #include "tchar.h" #include #include int mAIn() { HANDLE hCom1; COMMtiMEOUTS TimeOuts; DCB dcb1; DWORD i ; DWORD wCount =4; DWORD wCount1; unsigned char str[8]; hCom1 = CreateFile("COM4", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); if (hCom1==INVALID_HANDLE_VALUE ) { printf("read open failedn"); } else { printf("read open successedn"); } SetupComm(hCom1, 20480, 20480); //COMMTIMEOUTS TimeOuts; TimeOuts.ReadIntervalTimeout =100; TimeOuts.ReadTotalTimeoutMultiplier =500; TimeOuts.ReadTotalTimeoutConstant = 5000; TimeOuts.WriteTotalTimeoutMultiplier = 500; TimeOuts.WriteTotalTimeoutConstant = 2000; SetCommTimeouts(hCom1, &TimeOuts); //DCB dcb1; GetCommState(hCom1, &dcb1); dcb1.BaudRate = 115200; dcb1.ByteSize = 8;//一个字节8bit dcb1.Parity = NOPARITY;//无校验 dcb1.StopBits = ONESTOPBIT;//1位停止位 dcb1.fParity = FALSE; dcb1.fNull = FALSE; SetCommState(hCom1, &dcb1); PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR); if(!ReadFile(hCom1, str, wCount, &wCount1, NULL)) { printf("read failed!"); } else { printf("read successed!"); printf("wCount1:%dn", wCount1); printf("read data is"); for(i=0;i printf("%02X", str); } } CloseHandle(hCom1); // system("pause"); } 代码贴上来了,wCount1总是为0,不知道哪里出了问题,有没有大佬帮忙看下,总共就24积分了,感谢。 |
|
相关推荐
8个回答
|
|
用串口监听精灵发现,我自己写的发送和接收都只能发送和接收0,但是用串口助手收发监听到的数据正确,所以串口没问题,程序有问题,但真心看不出来哪里错了啊
|
|
|
|
现在发现发送的代码也有问题,用串口监听精灵发现不管发送什么数据,写入的要么是00,要么是01。
用串口助手能实现正确收发,因此问题出现在我的程序。不知道是哪里出现错误。 谢谢各位。 |
|
|
|
#include #include "tchar.h" #include void main() HANDLE hCom1; DCB dcb1; DWORD wCount =8; GENERIC_READ | GENERIC_WRITE, NULL, 0, if (hCom1==INVALID_HANDLE_VALUE ) printf("read open failedn"); } { } TimeOuts.ReadIntervalTimeout = 1000;//读超时 TimeOuts.ReadTotalTimeoutConstant = 5000; TimeOuts.WriteTotalTimeoutConstant = 2000; SetCommTimeouts(hCom1, &TimeOuts); // DCB dcb1; dcb1.BaudRate = 115200; dcb1.Parity = NOPARITY;//无校验 dcb1.fParity = FALSE; SetCommState(hCom1, &dcb1); //PurgeComm(hCom1, PURGE_TXCLEAR|PURGE_RXCLEAR); { else printf("read successed!n"); printf("read data isn"); { printf("%02X", str); } 这是我的接收代码,波特率是115200,接收8bytes的数据。但在vs2010中跑了一下,串口精灵显示我的代码进程只执行了打开、配置、关闭串口的操作,并没有执行读取操作,但vs跑出来的结果是读取成功了,但读取字节长度为0。 |
|
|
|
抱歉,这个论坛不能上传c文件,改成doc上传的。这是我的接收代码,波特率是115200,接收8bytes的数据。但在vs2010中跑了一下,串口精灵显示我的代码进程只执行了打开、配置、关闭串口的操作,并没有执行读取操作,但vs跑出来的结果是读取成功了,但读取字节长度为0。
|
|
|
|
上面的代码发出来是错乱不完整的,我重新上传了,在审核。
|
|
|
|
ClearCommError()得到的cs.cbInQue老是为0...
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-spi编程示例之spi编写程序
536 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第三十七章 image图像对比实验
524 浏览 0 评论
477 浏览 1 评论
479 浏览 0 评论
关于RT-Thread studio添加freemodbus控件失败的问题
808 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11636 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-8 10:54 , Processed in 0.819332 second(s), Total 59, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号