【发布时间】:2016-10-01 20:55:03
【问题描述】:
我正在实现一个简单的可见光通信模块,它有两个 arduino,作为发射器和接收器,包含 120 个字符的短文本消息。我使用了带有开关键控调制的曼彻斯特编码。
总的来说,在我的消息帧中,使用曼彻斯特编码以及前导码和帧结束字节,有 2480 位。我已将一位周期设置为 500 微秒。在接收端,我在 (500/4) 125 微秒处对该位进行了四次采样。据我所知,由于每个比特是 500 我们,有 2000 bits/s 从发射器传输,因此 9600 bits/s 的波特率应该可以工作。但是,9600 不工作,任何高于 38400 到 115200 的波特率都在工作,我可以在接收器中正确解码此短消息。
谁能解释一下我的行为?尽管我每秒只传输 2000 位,但为什么 9600 的波特率不起作用。
更多信息,我已将预分频设置为 128,因此 ADC 采样频率为 (16MHz/128)/13 = 9.6kHz。
非常感谢。
【问题讨论】:
-
我很困惑。你设置为 9600、38400 还是 115200? Arduino的硬件串口?您是否将光接收器直接馈入 Arduno UART?
-
是的,串口,在 Serial.begin() 中。抱歉没有说清楚。
标签: arduino-uno baud-rate