我正在尝试使用我的arduino uno的rx和tx引脚从rs485设备接收ASCII字符串,以2400 BAUD传输,传输间距为0.100秒,然后解析并输出某些字符串到16x2 LCD连接到了arduino ..我得到了一些数据字符串,因为我查看了我的示波器,进入了rx引脚0-5vdc方波。任何有示例代码将rs485 ascii字符串接收到缓冲区的人都会有所帮助。
答案 0 :(得分:1)
RS485,RS422和RS232是硬件链路层的不同方案。我的意思是,那些规范只描述了线路上的内容。收发器芯片组将线路信号转换回连接到Arduino或任何其他设备的逻辑电平信号。在Arduino看到的逻辑电平,任何RS___信号看起来都是一样的。
USART将位流转换为字节(可以是软件或硬件)。 USART不知道线路上的信号电平,它仅在逻辑电平比特流上运行。 UNO包含一个可在TxRx引脚上使用的USART。
因此,微控制器上的代码不需要与RS232或RS485不同。您看到的所有串行代码示例都可以正常运行。你告诉串口库波特,停止位和奇偶校验,你就完成了。将串行连接设置为2400,Arduino将开始查看字符。
买者
RS485有时用于半双工模式。这意味着您无法同时接收和传输。如果您正在为半双工接线,那么您的代码必须确定您没有在其他设备仍在传输时进行传输。