0

I am attempting to use my arduino uno's rx and tx pins to receive an ASCII character string from an rs485 device transmitting at 2400 BAUD with 0.100Sec between transmissions, and then parse and output certain pieces of the string to a 16x2 LCD attached to the arduino.. I am getting some data strings, as I checked with my scope, coming in on the rx pin 0-5vdc square wave. Anyone with sample code to receive rs485 ascii strings into a buffer would be helpful.

4

1 回答 1

1

RS485、RS422 和 RS232 是硬件链路层的不同方案。我的意思是,这些规范仅描述了电线上的内容。收发器芯片组将线信号转换回连接到 Arduino 或任何其他设备的逻辑电平信号。在 Arduino 看到的逻辑级别上,任何 RS___ 信号看起来都是一样的。

USART 将位流转换为字节(可以是软件或硬件)。USART 不知道线路上的信号电平,它只对逻辑电平比特流进行操作。UNO 包含一个在 TxRx 引脚上可用的 USART。

因此,您在微控制器上的代码不需要不同,RS232 或 RS485。您看到的所有串行代码示例都可以正常工作。你告诉串行库波特、停止位和奇偶校验,你就完成了。将串行连接设置为 2400,Arduino 将开始看到字符。


警告

RS485 有时用于半双工模式。这意味着您不能同时接收和发送。如果您正在为半双工接线,那么您的代码必须确定您没有在传输,而其他设备仍在传输。

于 2013-08-17T05:04:21.710 回答