stm32 RS485 SP3485

来源:互联网 发布:韩剧软件 编辑:程序博客网 时间:2024/06/04 21:16

RS485 是半双工通信(2 线制)

1
SP3485芯片的DE与RE短接在一起连接在STM32F1芯片的PG3上,通过PG3管脚就可以控制 SP3485的收发,当PG3=0时,为接收模式,当PG3=1时,为发送模式

2

3

4

相关文章:http://blog.csdn.net/zhangxuechao_/article/details/77095985

举例

void USART2_IRQHandler(){    u8 r;    if(USART_GetITStatus(USART2, USART_IT_RXNE) == SET)    {        r = USART_ReceiveData(USART2);        rs485 = 1; //使能发送        delay_ms(1);        USART_SendData(USART2, r);        led1 = ~led1;        while(USART_GetFlagStatus(USART2, USART_FLAG_TC) != SET);               rs485 = 0;    }    USART_ClearFlag(USART2, USART_FLAG_TC);}void RS485_init(){    GPIO_InitTypeDef gpiog3 =     {        GPIO_Pin_3,        GPIO_Speed_50MHz,        GPIO_Mode_Out_PP //推挽输出    };      GPIO_InitTypeDef gpioa2 =     {        GPIO_Pin_2,        GPIO_Speed_50MHz,        GPIO_Mode_AF_PP //复用推挽输出    };    GPIO_InitTypeDef gpioa3 =     {        GPIO_Pin_3,        GPIO_Speed_50MHz,        GPIO_Mode_IN_FLOATING //模拟输入    };    NVIC_InitTypeDef nvic =     {        USART2_IRQn,        2,        2,        ENABLE    };    USART_InitTypeDef usart =     {        9600,        USART_WordLength_8b,        USART_StopBits_1,        USART_Parity_No,        USART_Mode_Rx | USART_Mode_Tx,        USART_HardwareFlowControl_None, //硬件流控制    };    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOG, ENABLE);    RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);    GPIO_Init(GPIOG, &gpiog3);    GPIO_Init(GPIOA, &gpioa2);    GPIO_Init(GPIOA, &gpioa3);    USART_Init(USART2, &usart);    USART_Cmd(USART2, ENABLE);    USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);     NVIC_Init(&nvic);    rs485 = 0; //默认接收}
原创粉丝点击