//*********************************************************************************** // Ver 1.0 // 2020.03.05 1、新建文件。 //*********************************************************************************** #ifndef __RS485__H #define __RS485__H //*********************************************************************************** //RS485 GPIO初始化 #define RS485_GpioInit() do{ \ GPIO_Init(GPIOA, GPIO_Pin_0, 1, GPIO_Mode_OUT, GPIO_Speed_50MHz, GPIO_OType_PP, GPIO_PuPd_NOPULL); \ GPIO_Init(GPIOA, GPIO_Pin_1, 1, GPIO_Mode_OUT, GPIO_Speed_50MHz, GPIO_OType_PP, GPIO_PuPd_NOPULL); \ }while(0) //RS485_RE输出控制 #define RS485_ReLow() GPIO_ResetBits(GPIOA, GPIO_Pin_0) #define RS485_ReHigh() GPIO_SetBits(GPIOA, GPIO_Pin_0) //RS485_DE输出控制 #define RS485_DeHigh() GPIO_SetBits(GPIOA, GPIO_Pin_1) #define RS485_DeLow() GPIO_ResetBits(GPIOA, GPIO_Pin_1) //*********************************************************************************** enum{ RS485_MODE_RX = 0, RS485_MODE_PD = 2, RS485_MODE_TX = 3, }; #define RS485_Mode(Mode) do{ \ if(Mode & 0x01) RS485_ReHigh(); \ else RS485_ReLow(); \ if(Mode & 0x02) RS485_DeHigh(); \ else RS485_DeLow(); \ }while(0) #define RS485_SendChar(ch) UART_SendChar(USART1, ch) //*********************************************************************************** #define RS485_Init() do{ \ RS485_GpioInit(); \ UART_Init(USART1, UART_115200bps, USART_WordLength_8b, USART_StopBits_1, USART_Parity_No, 1); \ }while(0) #endif