微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > RS485通讯协议

RS485通讯协议

时间:12-14 来源:互联网 点击:

,继续填充下一个数据,直到最后一个数据填充完,使能串口

发送完毕中断。

4.最后一个数据发送完毕,再次进入中断,清除发送数据寄存器空标志,清除发送完毕中断标志,清除这两个中断标志

的使能位,设置RS485的方向为接收.

[html]view plaincopy

  1. #defineRX_485GPIO_SetBits(GPIOA,GPIO_Pin_1);
  2. #defineTX_485GPIO_ResetBits(GPIOA,GPIO_Pin_1);
  3. voidUART2_TX485_Puts(char*str)
  4. {
  5. while(*str)
  6. {
  7. TX_485;//打开485发送DE端口,关闭接收/RE端口
  8. DelayNmS(1);
  9. USART_SendData(USART2,*str++);
  10. while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET);//检测发送数据寄存器空标志位
  11. DelayNmS(1);
  12. RX_485;//关闭发送DE端口,打开接收/RE485端口,
  13. }
  14. }style="NewRoman;">

在485芯片的通信中,尤其要注意对485控制端DE的软件编程。为了可靠工作,在485总线状态切换时需要做适当延时,再进行数据收发。具体的做法是在数据发送状态下,先将控制端置“1”,延时1ms左右的时间,在发送有效的数据,一包数据发送结束后再延时1ms后,将控制端置“0”,这样处理会使总线在状态切换时,有一个稳定的工作过程。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top