打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Linux下RS232和RS485编程有什么区别?
         Linux下串口编程沿袭了Unix的POSIX标准,编程时只要包含<termios.h>,然后调用tcgetattr tcsetattr等函数,就可以完成对串口波特率,启停位,校验方式等的设置。
          有人会问,这些设置里,看不到对RS232或者RS485的区分啊,对于这两种协议没有编程的区别吗?
          其实,看了我这篇讲UART和RS232和RS485关系的文章的话,就会理解:RS232和RS485定义是电气特性,影响的是数据在线路上的传输过程,RS232和RS485的收发器通过UART才能被CPU访问,所以,只要控制了UART,就可以控制串口的传输方式,而所谓的编程其实就是对UART编程,所以RS232个RS485从程序员视角是不可见的。
          “那你就直接说RS485和RS232编程上没有区别不就完了?”
          问题是,实际总比理论复杂,这里有一种例外:
          RS232用两根线实现全双工,两根线各做各的,互不影响,可以同时进行;RS485虽然可以用四根线实现全双工,但是实际应用中比较少见,更常见的是只用两根线实现半双工,这样一来,就涉及到“收状态”和“发状态”的切换,这一切换又涉及两种情况:
          1、驱动程序中已经含有对半双工情况下的接受切换,驱动程序会根据你读或写的动作,自动进行切换。这种情况下,RS485的编程就与RS232完全没有区别。
          2、驱动程序不带自动切换,此时,为了完成切换,必须使用额外的GPIO连接RS485收发模块的接受使能端,在接受、发送数据之前,首先对使能端置位,使之处于正确的“接收”或“发送”状态。
cp4推荐阅读:
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
uart,RS232,RS485串口接口有哪些区别,使用该注意哪些?
UART USB COM RS232/485的区别
I2C接口与SPI和UART接口的区别
威纶触摸屏串口RS485 2W与RS485 4W有什么区别?
RS232 RTS/CTS协议
C语言之“编程超简单系列”:C语言面试的常客——“串口通信”
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服