winapi - Win32 API COM 端口通信读取 0x20 而不是 0x00
问题描述
我正在从 COM 端口读取数据(与 RS-232 通信)。
当 Win32 读取 0x00 字符时,我注意到一个奇怪的行为。我通过发送所有可能的组合(从 0x00 到 0xF)来确认它:
0x00 读作 0x20。
由于我的代码可以读取所有其他十六进制数据,这不是代码问题吗?
解决方案
回答我的问题:
我忘了我用空格字符替换了输入的 0 字符:
else if(buf[i] == 0)
{
//usually this happens in the beggining of a line.
buf[i] = ' ';//null
}
因为通常我正在阅读的每一行都是从 0 开始的。
所以我在我的 main 中删除了上面的代码并修复了
推荐阅读
- reactjs - 如何在 material-ui-dropzone 上使用 initialFiles 显示上传的文件?
- javascript - 是否可以检查一个数组是否所有值都为真,有些为真,全部为假
- django - django 如何在管理站点中添加徽标
- javascript - 在 JavaScript 中使用嵌套循环遍历大型二维数组
- html - 溢出出现在移动设备上,但没有出现在本地环境中
- css - 如何修复 SCSS 中的未定义变量错误?
- python - tensorflow对象检测api中的早期停止
- validation - Haskell IO,在同一行中获取两个输入并进行验证
- laravel - 如何在 laravel 7 中安装 github 包
- javascript - 从另一个组件传递 useState