STM32再学习——实现完美的RS485
2013-10-21 22:06
176 查看
首发自:http://www.edw.com.cn/421
在远距离通讯中,难免受干扰,因此,伟大的牛人们就创造了一种差分传输的方式——RS485通讯方式(以下简称RS485)。RS485由两根差分线来传输数据,比起RS232来说,其传输的距离更远,搞干扰性更强。当然,也为了节省银子,因此,只保留了一组差分线,也就只能完成同一时刻只接收或发送数据的半双工通讯了。
在设计中,我们经常使用一个名为Max485的芯片来完成TTL电平至差分电平的转换,这款芯片有一个DE(发送使能)引脚控制着RS485线的数据传输方向,而这个引脚何时高电平,何时低电平对我们的数据交换质量也就起着重大的作用。
我们先来看一下DE引脚的作用。当主设备完成发送后,其需要在1byte的时间内释放RS485总线,否则从设备在收到数据后,再回送数据时就会与主设备对总线占用的问题而产生冲突,这在RS485总线上是不允许的——RS485总线没有仲裁机制。因此,DE引脚就需要在主设备发送完成最后一个字节的最后一位数据的一位时间内将DE引脚从高电平拉到低电平。
STM32微处理器提供一个应用实例来实现精确、高效地控制DE引脚。这里我们使用DMA方式通过UART发送与接收数据,那么我们将会用到DMA发送完成中断与USART发送完成中断。DMA控制器监控着整个发送过程,待发送数据将会不断地被存入USART数据寄存器直到DMA计数减至零。当DMA发送完成后将触发DMA发送完成中断,我们就在这个中断中,将DE引脚的电平拉低。
我亲爱的网友们,你们学会了吗?
在远距离通讯中,难免受干扰,因此,伟大的牛人们就创造了一种差分传输的方式——RS485通讯方式(以下简称RS485)。RS485由两根差分线来传输数据,比起RS232来说,其传输的距离更远,搞干扰性更强。当然,也为了节省银子,因此,只保留了一组差分线,也就只能完成同一时刻只接收或发送数据的半双工通讯了。
在设计中,我们经常使用一个名为Max485的芯片来完成TTL电平至差分电平的转换,这款芯片有一个DE(发送使能)引脚控制着RS485线的数据传输方向,而这个引脚何时高电平,何时低电平对我们的数据交换质量也就起着重大的作用。
我们先来看一下DE引脚的作用。当主设备完成发送后,其需要在1byte的时间内释放RS485总线,否则从设备在收到数据后,再回送数据时就会与主设备对总线占用的问题而产生冲突,这在RS485总线上是不允许的——RS485总线没有仲裁机制。因此,DE引脚就需要在主设备发送完成最后一个字节的最后一位数据的一位时间内将DE引脚从高电平拉到低电平。
STM32微处理器提供一个应用实例来实现精确、高效地控制DE引脚。这里我们使用DMA方式通过UART发送与接收数据,那么我们将会用到DMA发送完成中断与USART发送完成中断。DMA控制器监控着整个发送过程,待发送数据将会不断地被存入USART数据寄存器直到DMA计数减至零。当DMA发送完成后将触发DMA发送完成中断,我们就在这个中断中,将DE引脚的电平拉低。
我亲爱的网友们,你们学会了吗?
相关文章推荐
- 【为避免485冲突,主机占用后要立刻释放】STM32再学习——实现完美的RS485
- STM32再学习——实现完美的RS485
- 【STM32 .Net MF开发板学习-27】GPRS通信实现 推荐
- 一步步学习操作系统(1)——参照ucos,在STM32上实现一个简单的多任务(“啰里啰嗦版”)
- STM32学习笔记:单片机按键单击、双击、长按功能实现
- STM32实现IAP功能的学习笔记
- 【STM32 .Net MF开发板学习-27】GPRS通信实现
- STM32实现IAP功能的学习笔记
- Android学习之RecylerView完美实现瀑布流效果
- CoAP学习笔记——STM32平台上实现CoAP Server
- STM32 嵌入式学习入门(5)——PWM的实现
- STM32学习中遇到的问题-(1)跑马灯的实现
- STM32学习笔记4(TIM32位定时器的实现)
- 论文结果难复现?本文教你完美实现深度强化学习算法DQN
- 【Contiki学习】01.Contiki-stm32系统下实现serial-shell功能
- 转:Stm32学习笔记:按键单击、双击、长按功能实现
- app-framework学习--完美解决scroller 拖动问题实现局部滚动
- CAN 学习笔记一_【基于STM32的CANopen通讯协议的实现】
- app-framework学习--完美解决scroller 拖动问题实现局部滚动
- 通过串口实现stm32的IAP功能————stm32学习笔记