这是我参与8月更文挑战的第18天,活动详情查看:8月更文挑战
485通信是工业控制中很常用的一种通信方式,但是编写通信程序的时候需要在代码中手动控制接收和发送,如果接收和发送逻辑没处理好往往会造成通信故障,实现起来比较麻烦。那能不能让485通信是接收和发送数据可以自动切换,不用程序去控制。就像使用串口一样,直接读数据或者写数据就行,不用关心当前总线的状态。
网上查找资料后发现485的自动收发硬件电路有很多,通过外部搭建的模拟电路就可以实现接收和发送数据的自动切换,这种电路的器件参数和稳定性可靠性都要根据使用环境去测试,使用起来比较麻烦。查找资料后发现MAX13487E这个芯片自带了接收和发送自动切换功能。现在看一下这个芯片的使用方法。
先看看芯片介绍
内部结构如下
下来看看各个引脚的功能
通过引脚功能可以看到,2脚为低电平时为接收功能,2脚为高电平时为自动方向控制功能。3脚为高电平时为正常操作模式,3脚为低电平时为关断模式。将2脚和3脚都接高电平时,就能实现自动收发数据自动切换了。
应用电路如下
将2、3脚都接VCC,这样485通信时就可以像操作串口那样,直接去读数据或者写数据了,代码中就不用关心接收和发送引脚的电平了。
如果通信需要隔离的话,可以参考官方推荐的光耦隔离电路:
RXD和TXD直接接单片机串口的接收和发送端就行了。
这个芯片实现485通信时收发数据自动切换电路最简单,不用增加额外的器件,通信的稳定性和可靠性都有保证。
注意这个芯片是5V供电的,如果要和3.3V单片机连接的时候,要注意单片机IO口的电平兼容性,比如和STM32单片机连接的时候,要接到串口1上,因为串口1是兼容5V电平的,这样就可以不用使用电平转换电路了。
如果不知道哪个口是兼容5V的,可以在芯片手册中查看引脚图,前面有FT标志的,就代表当前IO口可以兼容5V的电平。
今天的文章STM8单片机485通信实现自动收发数据分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/13889.html