求解API函数ReadFile()接收数据问题。 初学VC++。编写智能仪器通讯程序。如何使用API函数的WriteFile()将从编辑框输入的字符串转换为16进制数指令发送?如何使用ReadFile()接收仪表返回的16进制数据并显示在编辑框中? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 写2个函数来转换WriteFile和ReadFile用来写、读串口 你是用串口通信吗?如果是用串口,先用createfile创建打开串口,然后设置串口属性,在调用WriteFile,readFile等 下面是我的发送函数:BYTE lpOutBuffer[8];lpOutBuffer[0]=0x80;lpOutBuffer[1]=0x80;lpOutBuffer[2]=0x52;lpOutBuffer[3]=0x01;lpOutBuffer[4]=0x00;lpOutBuffer[5]=0x00;lpOutBuffer[6]=0x52;lpOutBuffer[7]=0x01; DWORD dwBytesWrite=8; COMSTAT ComStat; DWORD dwErrorFlags; BOOL bWriteStat; ClearCommError(hCom,&dwErrorFlags,&ComStat); bWriteStat=WriteFile(hCom,lpOutBuffer, dwBytesWrite,& dwBytesWrite,&m_osWrite);//写串口控制指令是发出去了。但是仪器返回的数据我接收到一串奇怪的字符。下面是读缓冲区指令:定义char str[10];仪表要返回10个字节的16进制数。 bReadStat=ReadFile(hCom,str,dwBytesRead,&dwBytesRead,&m_osRead);//读串口m_back=str;//文本框显示str里面存的是16进制字符吗?是不是需要经过一些转换。怎么转换。 下面是我的发送函数:BYTE lpOutBuffer[8];lpOutBuffer[0]=0x80;lpOutBuffer[1]=0x80;lpOutBuffer[2]=0x52;lpOutBuffer[3]=0x01;lpOutBuffer[4]=0x00;lpOutBuffer[5]=0x00;lpOutBuffer[6]=0x52;lpOutBuffer[7]=0x01; DWORD dwBytesWrite=8; COMSTAT ComStat; DWORD dwErrorFlags; BOOL bWriteStat; ClearCommError(hCom,&dwErrorFlags,&ComStat); bWriteStat=WriteFile(hCom,lpOutBuffer, dwBytesWrite,& dwBytesWrite,&m_osWrite);//写串口控制指令是发出去了。但是仪器返回的数据我接收到一串奇怪的字符。下面是读缓冲区指令:定义char str[10];仪表要返回10个字节的16进制数。 bReadStat=ReadFile(hCom,str,dwBytesRead,&dwBytesRead,&m_osRead);//读串口m_back=str;//文本框显示str里面存的是16进制字符吗?是不是需要经过一些转换。怎么转换。 异步读写会立即返回,因此需要判断返回值,并且在被挂起时还需要等待结束仔细研读下MSDN的帮助文档Serial Communications 不同的操作系统,相同的DPI,控件大小显示却不同?? 跳槽了,散分 黑龙江生猪患甲流 砖家称吃猪肉不会感染 50分 求 位图的托动 高手帮帮忙 关于VC++安装的问题 请问谁有简单的基于NDIS的sniffer实例程序 句柄和指針的使用問題? try块里的代码多少和深度会不会影响执行性能? 如何对Access数据库进行全字段的搜索?? help socket服务器问题,怎么连多个客户端 二维BYTE数组怎么快速显示为黑白图像?
WriteFile和ReadFile用来写、读串口
如果是用串口,
先用createfile创建打开串口,
然后设置串口属性,在调用WriteFile,readFile等
BYTE lpOutBuffer[8];
lpOutBuffer[0]=0x80;
lpOutBuffer[1]=0x80;
lpOutBuffer[2]=0x52;
lpOutBuffer[3]=0x01;
lpOutBuffer[4]=0x00;
lpOutBuffer[5]=0x00;
lpOutBuffer[6]=0x52;
lpOutBuffer[7]=0x01; DWORD dwBytesWrite=8;
COMSTAT ComStat;
DWORD dwErrorFlags;
BOOL bWriteStat;
ClearCommError(hCom,&dwErrorFlags,&ComStat); bWriteStat=WriteFile(hCom,lpOutBuffer,
dwBytesWrite,& dwBytesWrite,&m_osWrite);//写串口控制指令是发出去了。但是仪器返回的数据我接收到一串奇怪的字符。
下面是读缓冲区指令:定义char str[10];仪表要返回10个字节的16进制数。
bReadStat=ReadFile(hCom,str,dwBytesRead,&dwBytesRead,&m_osRead);//读串口
m_back=str;//文本框显示
str里面存的是16进制字符吗?是不是需要经过一些转换。怎么转换。
BYTE lpOutBuffer[8];
lpOutBuffer[0]=0x80;
lpOutBuffer[1]=0x80;
lpOutBuffer[2]=0x52;
lpOutBuffer[3]=0x01;
lpOutBuffer[4]=0x00;
lpOutBuffer[5]=0x00;
lpOutBuffer[6]=0x52;
lpOutBuffer[7]=0x01; DWORD dwBytesWrite=8;
COMSTAT ComStat;
DWORD dwErrorFlags;
BOOL bWriteStat;
ClearCommError(hCom,&dwErrorFlags,&ComStat); bWriteStat=WriteFile(hCom,lpOutBuffer,
dwBytesWrite,& dwBytesWrite,&m_osWrite);//写串口控制指令是发出去了。但是仪器返回的数据我接收到一串奇怪的字符。
下面是读缓冲区指令:定义char str[10];仪表要返回10个字节的16进制数。
bReadStat=ReadFile(hCom,str,dwBytesRead,&dwBytesRead,&m_osRead);//读串口
m_back=str;//文本框显示
str里面存的是16进制字符吗?是不是需要经过一些转换。怎么转换。
Serial Communications