基于STM32F103的485通讯

由于PC没有485接口,所以配置了一个UT-2201转换器,485转232,转换器的接口如下图所示:

基于STM32F103的485通讯_第1张图片

基于STM32F103的485通讯_第2张图片

 

==============================================================


下图是PC与转换器之间的连接线:
基于STM32F103的485通讯_第3张图片

 

==============================================================

 

下图是转换器的连接:

基于STM32F103的485通讯_第4张图片
 

==============================================================

 

在开发板上的原理图如下,短接1和3,短接2和4,把转换器引出的A对应下图的A,引出的B对应下图的B

基于STM32F103的485通讯_第5张图片

 

PA2--TX-485

复用推挽输出

50Mhz

 

PA3--RX-485

模拟输入

50Mhz

 

PG3--CS-485

推挽输出

50Mhz

 

波特率9600,8位数据格式,1停止位,无校验

串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。

==============================================================

 

软件中重要的函数:

void USART2_IRQHandler(void)//串2中断函数

{

u8 res;     

if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)//接收到数据

{

res =USART_ReceiveData(USART2);//;读取接收到的数据USART2->DR

RS485_TX_EN=1;//发送

delay_ms(1);

USART_SendData(USART2,res);

while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=1);

delay_ms(2);

RS485_TX_EN=0;//接收

}  

USART_ClearFlag(USART2,USART_FLAG_TC);

 

==============================================================

 

发送的数据是一个字节(如果想要多个字节发送,则可以用一个数组)

开发板返回发送的字节

基于STM32F103的485通讯_第6张图片

你可能感兴趣的:(新浪博客迁移)