测试串口通讯接收数据问题
使用串口测试工具测试接收数据,发送的是16进制01 03 05 0f,累加求和
接收代码为
byte buff[128] = {0};
while(1)
{
bWriteStat = ReadFile(hCom,buff,dwBytesWrite,&dwBytesWrite,NULL);
if(!bWriteStat)
{
printf("读串口失败!\n");
}
cout<<buff<<endl;
Sleep(500);
}
输出为:
????↑
这是怎么回事,应该怎么让输出为int类型?
CString s(buff);
cout<<s<<endl;
printf("显示%x\n",buff);
试了一下这三种输出,每次都是变动的,求助!
[解决办法]
用 printf 吧:
for (i=0;i<n;i++) printf("%02X ",buff[i]);
其中,n 是读取的字节数
[解决办法]
查看一下你的串口设备是以ASIIC发送的,
还是以二进制发送的!
如果是二进制发送的,就需要将二进制转换
[解决办法]
你串口什么程序?控制台还是窗体?
控制台的话,要int就得用。
for语句循环。
printf("%d ",buff + i)。
[解决办法]
这两天在忙其他一个程序,这个程序暂时放着了,不好意思了,太忙了,先结贴了,等到时候不会了在问大家