【问题标题】:Arduino SoftwareSerial library mod to allow 8-O-1 comArduino SoftwareSerial library mod 允许 8-O-1 com
【发布时间】:2012-09-10 21:41:05
【问题描述】:

我正在尝试使用 Arduino 的 SoftwareSerial 与 RS-422 设备进行通信。 我使用SN75179BP将422转换为TTL。

设备为 8 位 - 奇校验 - 1 个停止位。 我尝试使用以下方法修改软件序列库: http://arduino.cc/forum/index.php/topic,108097.0.html

将写入函数中的奇偶校验位计算更改为奇数而不是偶数。

几个问题: 首先,如果我在 recv 函数上使用 pylon [第 4 条评论] 建议的确切模式,同时尝试上传我得到的草图:

/var/folders/st/vmhkh5t57592ln_zhkyfq2q80000gn/T//cct5EjNP.s: Assembler messages:
/var/folders/st/vmhkh5t57592ln_zhkyfq2q80000gn/T//cct5EjNP.s:243: Error: register r24, r26, r28 or r30 required
/var/folders/st/vmhkh5t57592ln_zhkyfq2q80000gn/T//cct5EjNP.s:263: Error: register r24, r26, r28 or r30 required

不知道为什么。 但如果我保持原样,只改变这个:

  // skip the parity bit
    tunedDelay(_rx_delay_stopbit);
    DebugPulse(_DEBUG_PIN2, 1);

    // skip the stop bit
    tunedDelay(_rx_delay_stopbit);
    DebugPulse(_DEBUG_PIN2, 1);

  

到这里:

 // skip the 2 stop bits
    tunedDelay(_rx_delay_stopbit*2);
    DebugPulse(_DEBUG_PIN2, 1);

我可以上传草图,甚至可以开始在我的序列号上接收真实和正确的数据。

第二个问题是,无论我做什么 - 我都无法让 write 函数工作。 该设备不响应​​任何输入,除了在我尝试通过串行向该设备发送某些内容的第二秒,我停止在我的接收通道上获得漂亮和干净的数据,而是变得混乱......

[顺便说一句,在那种情况下——如果发送一些“新行”0D,它会带回接收通道上的正常数据...]

*-我使用的是 Arduino 1.0.1

编辑:我不知道它是否重要,但我正在使用 inverse_logic 来让接收函数工作。

欢迎提出任何想法!

【问题讨论】:

  • 如果你能回答你自己的问题就好了。包含链接很好,但由于链接腐烂,仅链接的答案不受欢迎,请务必在答案本身中添加简短摘要。

标签: c++ serial-port arduino


【解决方案1】:

您是否尝试过将写入功能更改为非逆逻辑并确保已正确设置奇偶校验位和停止位? :-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2020-02-21
    相关资源
    最近更新 更多