首页 > 解决方案 > Win32 API COM 端口通信读取 0x20 而不是 0x00

问题描述

我正在从 COM 端口读取数据(与 RS-232 通信)。

当 Win32 读取 0x00 字符时,我注意到一个奇怪的行为。我通过发送所有可能的组合(从 0x00 到 0xF)来确认它:

0x20 0x00

0x00 读作 0x20。

由于我的代码可以读取所有其他十六进制数据,这不是代码问题吗?

标签: winapiserial-port

解决方案


回答我的问题:

我忘了我用空格字符替换了输入的 0 字符:

else if(buf[i] == 0)
{
    //usually this happens in the beggining of a line.
    buf[i] = ' ';//null
}

因为通常我正在阅读的每一行都是从 0 开始的。

所以我在我的 main 中删除了上面的代码并修复了


推荐阅读