为什么使用9600数据速率而不是Serial.begin()的其他速率?

时间:2017-01-27 10:27:28

标签: arduino arduino-ide

我正在使用Arduino,并且正在使用计算机Serial.begin()功能进行通信。现在,因为有一系列的数据速率从300 ... 115200。 多数使用9600! 为什么会这样?它的意义是什么

2 个答案:

答案 0 :(得分:2)

在之前的千禧年中,9600波特已成为某些设备的标准。

目前这种速度对于大多数情况来说已经足够了,所以他们坚持下去;许多设备默认使用9600波特率。

我个人最常使用串口进行调试。在9600波特时,它每秒可以打印超过10行,这比我能读的要多。

但是你可以记住,缓冲区限制为64个字符,当它满了时,arduino将阻塞serial.write指令,直到缓冲区中有足够的空间。这就是为什么你会遇到一些波动速度慢的原因。

另一方面,您将在硬件串行上以0.5M的速度加载MCU。使用软件序列,您可以更快地看到影响。

我个人在使用CH340 USB / Serial的中国纳米时遇到了一些麻烦;与pyserial的arduino的python通信在超过9600波特的速度下是不可靠的。

答案 1 :(得分:0)

许多设备使用9600或19200波特,我猜人们只是在不考虑它们的情况下复制值,从而即使不再需要也继续练习。

也就是说,maximum length of a serial cable取决于您选择的波特率。较高的波特率需要较短的电缆。因此,如果您不需要更高的费率,只需保持9600这样的低价。