STM32串口实现485双机通信原理.doc
《STM32串口实现485双机通信原理.doc》由会员分享,可在线阅读,更多相关《STM32串口实现485双机通信原理.doc(1页珍藏版)》请在三一文库上搜索。
1、STM32串口实现485双机通信原理在讲STM32串口实现485双机通信的原理之前,先来复习一下串口中的中断知识点:注意有人问当产生接收中断时,没看到程序中清除中断标志啊,那不就一直中断下去了吗?这里官方规定有两种方法清除中断标志(书里面也有):1、尽快读取USART_DR(数据寄存器),通过读USART_DR可以将该位清零;2、可以直接向该位写0,直接清零。STM32串口实现485双机通信的原理(库函数):1、在主函数中,扫描按键。一旦key0按下,首先将5个字节的数据存入rs485buf数组中,然后调用RS485_Send_Data(rs485buf,5);函数将5个字节的数据发送到串口。
2、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_BUF64)里写数据。RS485_RX_CNT计数器的值也就是0,对应在RS485_Receive_Data();函数中就不会进入里面的if语句(下图中红框)如果按键按下了,就会发送数据,就会产生接收中断,就会往我们定义的接收缓冲区(RS485_RX_BUF64)里写数据,RS485_RX_CNT计数器的值也就开始自增,对应在RS485_Receive_Data();函数中就会进入里面的if语句,从之前定义的接收缓冲区(RS485_RX_BUF64)里面取数据。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32 串口 实现 485 双机 通信 原理
链接地址:https://www.31doc.com/p-3273581.html