电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
创作
电子发烧友网>电子资料下载>工控威廉希尔官方网站 >STM32串口实现485双机通信的原理资料下载

STM32串口实现485双机通信的原理资料下载

2021-04-05 | pdf | 186.35KB | 次下载 | 3积分

资料介绍

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、最后就将取出来的数据(接收到的数据)显示出来。 本文转载自 转载地址: 声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有,如涉及侵权,请联系小编进行处理。 (mbbeetchina)
下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1Keysight B1500A 半导体器件分析仪用户手册、说明书 (中文)
  2. 19.00 MB  |  4次下载  |  免费
  3. 204-01-02-CBM317线性稳压器(LDO)
  4. 2.01 MB  |  2次下载  |  免费
  5. 3BT134双向可控硅手册
  6. 1.74 MB   |  2次下载  |  1 积分
  7. 4使用TL431设计电源
  8. 0.67 MB   |  1次下载  |  免费
  9. 5LabVIEW环形控件
  10. 0.01 MB   |  1次下载  |  1 积分
  11. 651单片机核心板原理图
  12. 0.12 MB   |  1次下载  |  5 积分
  13. 7BP2879DB支持调光调灭的非隔离低 PF LED 驱动器
  14. 1.44 MB  |  1次下载  |  免费
  15. 8CBM1001A-Q
  16. 1.52 MB  |  次下载  |  免费

本月

  1. 1开关电源设计原理手册
  2. 1.83 MB   |  50次下载  |  免费
  3. 2FS5080E 5V升压充电两串锂电池充电管理IC中文手册
  4. 8.45 MB   |  23次下载  |  免费
  5. 3DMT0660数字万用表产品说明书
  6. 0.70 MB   |  13次下载  |  免费
  7. 4UC3842/3/4/5电源管理芯片中文手册
  8. 1.75 MB   |  12次下载  |  免费
  9. 5ST7789V2单芯片控制器/驱动器英文手册
  10. 3.07 MB   |  11次下载  |  1 积分
  11. 6慧荣SM2263XT开卡软件-B16_B17_FW_S0614B0_RDT_S0617A
  12. 3.03 MB   |  10次下载  |  5 积分
  13. 7TPS54202H降压转换器评估模块用户指南
  14. 1.02MB   |  8次下载  |  免费
  15. 8STM32F101x8/STM32F101xB手册
  16. 1.69 MB   |  8次下载  |  1 积分

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935119次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420061次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233084次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191367次下载  |  10 积分
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183335次下载  |  10 积分
  11. 6labview8.5下载
  12. 未知  |  81581次下载  |  10 积分
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73807次下载  |  10 积分
  15. 8LabVIEW 8.6下载
  16. 未知  |  65987次下载  |  10 积分