【发布时间】:2013-12-10 11:29:34
【问题描述】:
我在使用 boost 将数据写入串行端口时遇到问题。 我从这里使用稍微修改的 minicom_client 类: https://code.google.com/p/vkbrd/source/browse/trunk/src/Dg5Emulator/MiniComClient.h https://code.google.com/p/vkbrd/source/browse/trunk/src/Dg5Emulator/MiniComClient.cpp
消息中的前 17 个字节发送良好,但其余字节替换为:
FD FD FD FD AB AB AB AB AB AB AB AB EE FE EE FE 00 00 00 etc
消息长度正确。
当我打电话时
for (int i = 0; i < 128; ++i)
miniComClient.do_write(i);
我在第二面收到这个:
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F FD FD FD FD AB AB AB AB
AB AB AB AB EE FE EE FE 00 00 00 00 00 00 00 00 2E F1 5C 42 BD 8B 07 18
40 6D C1 03 E8 9E 40 02 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00
F4 62 00 00 FD FD FD FD 40 54 40 02 FD FD FD FD AB AB AB AB AB AB AB AB
00 00 00 00 00 00 00 00 2F F1 5C 43 BF 8B 07 18 A0 A3 3B 02 38 A5 3B 02
00 00 00 00 00 00 00 00 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
FD FD FD FD AB AB AB AB AB AB AB AB EE FE EE FE 00 00 00 00 00 00 00 00
2E F1 5C 42 BD 8B 07 18 40 6D C1 03 E8 9E 40 02 00 00 00 00 00 00 00 00
04 00 00 00 01 00 00 00 F4 62 00 00 FD FD FD FD 40 54 40 02 FD FD FD FD
AB AB AB AB AB AB AB AB 00 00 00 00 00 00 00 00 2F F1 5C 43 BF 8B 07 18
A0 A3 3B 02 38 A5 3B 02 00 00 00 00 00 00 00 00
我有三次检查波特率、停止位和奇偶校验。
有没有办法改变发送缓冲区的大小?也许这是其他一些问题。
【问题讨论】:
-
请在您的问题中包含相关的源代码
-
我添加了指向标头和源的链接,并在我的回答中解释了修改。
标签: boost serial-port boost-asio send