当STM32遇到串口RS485双机通信,这样处理最便捷

2017-10-11 13:57:00 来源:互联网
分享到:
标签:

 

RS485通信想必大家都知道,在学习RS232时,都会拿485(RS485下文就用485代替)和其作对比。485优缺点不说,网上有。
 
我用的是STM32库函数学的485通信,所以接下来就讲讲STM32串口实现485双机通信的原理:
 
485和232都是基于串口的通讯接口,在数据的收发操作上都是一致的。但是他两的通讯模式却大不相同~!232是全双工(例:A->B的同时B->A,瞬时同步)工作模式,而485是半双工(发时不能收,收时不能发)工作模式。在232通信中,主机在发送数据的同时可以收到从机发过来的数据;但在485通信中,收发要经过模式位的切换来进行,譬如,发送数据时,会把模式为置‘1’,表示为发送模式,此时不能接收;当接收数据时,会把模式位置‘0’,表示为接收模式,此时不能发送。
 
在讲STM32串口实现485双机通信的原理之前,先来复习一下串口中的中断知识点:
 
串口的中断类型有很多种。这里主要讲两种:接收到数据中断和发送数据完成中断。这两个中断跟两个标志位有密切关系:RXNE(读数据寄存器非空)和TC(发送完成)。譬如在接收到数据的时候(RXNE,读数据寄存器非空),我们要产生中断。在发送数据结束的时候(TC,发送完成)要产生中断。这两种中断的产生方法都是在开启串口中断函数(USART_ITConfig();)中配置。并在获取中断状态函数(USART_ITStatus();)中判断是发送中断还是接受中断。
 
注意:1、有人问当产生接收中断时,没看到程序中清除中断标志啊,那不就一直中断下去了吗?这里官方规定有两种方法清除中断标志(书里面也有):1、尽快读取USART_DR(数据寄存器),通过读USART_DR可以将该位清零;2、可以直接向该位写‘0’,直接清零。
 
2、两块板子的串口波特率一定要相同,否则将得不到想要的数据。
 
STM32串口实现485双机通信的原理(库函数):
1、在主函数中,扫描按键。一旦key0按下,首先将5个字节的数据存入rs485buf[]数组中,然后调用RS485_Send_Data(rs485buf,5);函数将5个字节的数据发送到串口。
 
 
2、进入RS485_Send_Data();函数中,先通过标志位将485设置为发送模式(RS485_TX_EN=1),然后循环5次,将这5个字节数据,通过库函数:USART_Send_Data();发送到USART_DR寄存器(自动发送),最后通过标志位将485设置为接收模式(RS485_TX_EN=0)。
 
   
3、前两个是发送。现在是接收了。主函数中通过RS485_Receive_Data();不停的接收。
 
4、进入RS485_Receive_Data();函数中,
 
如果一直没有按按键,则不会发送数据,也就不会产生接收中断,也就不会往我们定义的接收缓冲区(RS485_RX_BUF[64])里写数据。RS485_RX_CNT计数器的值也就是‘0’,对应在RS485_Receive_Data();函数中就不会进入里面的if语句(下图中红框)
 
 
如果按键按下了,就会发送数据,就会产生接收中断,就会往我们定义的接收缓冲区(RS485_RX_BUF[64])里写数据,RS485_RX_CNT计数器的值也就开始自增,对应在RS485_Receive_Data();函数中就会进入里面的if语句,从之前定义的接收缓冲区(RS485_RX_BUF[64])里面取数据。
 
5、最后就将取出来的数据(接收到的数据)显示出来。
 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
酷派卖地,准备和地产商合作搞项目?

酷派集团(02369.HK)10月17日在港交所发布公告称,附属公司宇龙计算机通信科技(深圳)有限公司(下称宇龙)与深圳市星华安房地产开发有限公司(下称星华安)签订合作开发协议书。根据协议,宇龙和星华安确认共同合作开发酷派信息港城市更新项目一期、二期、三期。

增加IEEE 1588?你还有很多问题需要考虑

IEEE 1588标准的设想是要在以太网联网设计中增加定时同步。该协议通常用于数据通信和无线基站,通过网络实现同步定时。现在,同步网络定时在广泛的工业和发电市场日益普遍。PLC、无刷电机、机器人、同步相量、装配线控制等产品正在寻求采用IEEE 1588同步定时方案。

长电定增45.5亿,大基金成大股东王新潮退居第三

长电科技29日晚公告,拟向五名对象发行股份不超2.72亿股,募资不超45.5亿元,投资“年产20亿块通信用高密度集成电路及模块封装项目”、“通讯与物联网集成电路中道封装技术产业化项目”并偿还贷款。公司现第一、第三大股东芯电半导体(上海)有限公司、国家集成电路产业投资基金股份有限公司,各认购不超6.5亿元、29亿元,交易后后者将成公司大股东

联通混改之后,联通电信怎么出招?

中国联通混改已经基本上尘埃落定,但整个通信行业的发展却依然充满不确定性。

Maxim发布极性可选的高速CAN收发器MAX14883E
Maxim发布极性可选的高速CAN收发器MAX14883E

Maxim宣布推出MAX14883E控制局域网(CAN)收发器,可快速解决采暖、通风及空调系统(HVAC)和楼宇自动化系统的安装错误。

更多资讯
苹果A12处理器被传全部交给台积电,三星翻盘点在哪里?
苹果A12处理器被传全部交给台积电,三星翻盘点在哪里?

台积电的供应链透漏,由于台积电在7纳米制程技术上要优于竞争对手三星,使得台积电最大客户之一的苹果,决定在2018年推出的新一代iPhone智能手机上所搭载的A12处理器,将依旧再由台积电独家生产。

内存价格持续上涨,背后隐藏着怎样的竞争关系

2012年2月3日,全球著名内存生产厂商镁光科技的CEO史蒂夫·阿普尔顿(Steve Appleton),在美国爱达荷州的波伊西(Boise)的一个航空展上,驾驶着一架Lancair IV-PT螺旋桨飞机,给观众们做表演。

麒麟970/苹果A11/骁龙处理器都在布局AI,三星终于坐不住了
麒麟970/苹果A11/骁龙处理器都在布局AI,三星终于坐不住了

其实在这之前,三星就已经对英国人工智能技术公司Graphcore投资3000万美元,而他们这种持续的投资,就是为了确保自己不在这场AI竞争中落后。

三星Galaxy S9曝光,屏下指纹识别要来了?
三星Galaxy S9曝光,屏下指纹识别要来了?

就在 三星Galaxy S8 与 三星Note8 卖得如火如荼之际,或将首发高通骁龙845移动平台的Galaxy S9 忽然传来最新消息。

芯片上的冗余电路有何重要意义?

冗余电路会升高成本,降低性能和提升功耗。但实际上又真的能删减多少呢?

微话题

工作 or 考研?

又到一年招聘季,考研or工作让你实现了怎样的逆袭?……
Moore8直播课堂