gpt4 book ai didi

c++ - 串口不接受波特率

转载 作者:太空宇宙 更新时间:2023-11-04 09:07:35 24 4
gpt4 key购买 nike

我正在尝试在 centos 上设置一个串行端口,但无法让它工作。这是我遇到问题的代码。

tcgetattr(idComDev[i], &options); // get current settings

printw("default baudrate is %d ", cfgetispeed(&options));

cfsetispeed(&options, B115200); // set baud rate
cfsetospeed(&options, B115200); // set baud rate

tcsetattr(idComDev[i], TCSANOW, &options);// save the settings

printw("Seg %d = COM%hd at %d Baudrate",i,CommNo[i], cfgetispeed(&options));

输出结果为:默认波特率为 4098 Seg0 = COM1 at 4098 Baudrate

为什么是 4098?我在任何地方都找不到这个波特率。

如果我将波特率设置为 1800,它表示它是 10。如果我将它设置为 9600,它表示它是 13。

我做了一些研究,发现硬件无法支持如此高的波特率,但我在同一台计算机上有一个 Java 程序与我尝试连接的同一设备通信。所以我知道这不可能。

有谁知道发生了什么以及如何解决它?

最佳答案

B115200 是一个宏,扩展为 0x1002。这是两个位的组合:0x1000 表示它是一个非标准速率(如您所见),0x2 是第二个非标准速率(B576000x1001,第一非标准费率)。

关于c++ - 串口不接受波特率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7645403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com