Ubuntu 16.04和MATLAB R2017a。

我试图像这样设置串行端口:

s=serial_port('/dev/ttyUSB0','BaudRate',115200,'DataBits',8,'InputBufferSize',80000)


一切正常,但是当我尝试更改波特率时,说1000000。
我收到此消息:

Open failed: BaudRate could not be set to the specified value.


因此,我有2个问题:

1)是否可以设置不常见的波特率,例如2000000?

2)我发现有1500000和3000000为我工作。
有最大速度吗?

**更新**

在我的情况下,我知道如何在OS中更改波特率(Ubuntu 16.04)
 setserial无法正常工作,因此我正在使用sudo stty -F /dev/ttyUSB3 3500000(不允许所有速度)或通过asm / termios.h>-允许所有速度。
所以,我正在使用第二种方式。

之后,我可以轻松地像cu -l /dev/ttyUSB0这样监听端口
同时,我无法在matlab中设置速度。(上面的错误)

最佳答案

尽管this link应该为您提供有关如何在Matlab方面管理波特率的足够信息,如@Cris Luengo在其命令中已经指出的那样,但我想在问题的硬件方面进行一些说明。

使用以下命令:

stty -F /dev/ttyUSB0


您应该能够检索目标设备的当前波特率。另外,以下命令也可以检索该值:

 setserial -ag /dev/ttyUSB0


连同其他重要信息:


  / dev / ttyUSB0,Line ...,UART:...,端口:...,IRQ:...
  
  Baud_base:...,close_delay:...,除数:...
  
  关闭等待:...,关闭等待2:...
  
  标志:...


在操作系统方面,您可以使用某些设备的波特率,但是如果要避免出现问题,则在建立连接时始终必须设置一致的值。一般而言,设备在波特率偏差方面对超速和低速具有容忍度(我认为不超过±5%)...因此您可以尝试强制设置不同于当前波特率的任意波特率,但是您会不想离它太远。

关于linux - MATLAB中的最大波特率是多少?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47962291/

10-11 21:09