123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- #ifndef __USART_ARM_DEFINE_H
- #define __USART_ARM_DEFINE_H
- //===========================================================
- //若没有定义,则采用以下默认值
- #ifndef UART_ARM_Periph_Num
- #define UART_ARM_Periph_Num 1
- #endif
- #ifndef UART_ARM_ReMap_Num
- #define UART_ARM_ReMap_Num 0
- #endif
- //===========================================================
- //Tx与Rx引脚
- #if UART_ARM_Periph_Num == 1
- //1号串口
- #define UART_ARM_Periph USART1
- #define UART_ARM_IRQ_Handler USART1_IRQHandler
- #define UART_ARM_IRQ USART1_IRQn
- #define UART_ARM_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE)
- #if UART_ARM_ReMap_Num == 0
- //1号串口不映射,使用PA8,PA9
- #define UART_ARM_Tx_Port GPIOA
- #define UART_ARM_Tx_Line GPIO_Pin_9
- #define UART_ARM_Tx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE)
- #define UART_ARM_Rx_Port GPIOA
- #define UART_ARM_Rx_Line GPIO_Pin_10
- #define UART_ARM_Rx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE)
- #define UART_ARM_Remap()
- #elif UART_ARM_ReMap_Num == 1
- //1号串映射到 PB6,PB7
- #define UART_ARM_Tx_Port GPIOB
- #define UART_ARM_Tx_Line GPIO_Pin_6
- #define UART_ARM_Tx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE)
- #define UART_ARM_Rx_Port GPIOB
- #define UART_ARM_Rx_Line GPIO_Pin_7
- #define UART_ARM_Rx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE)
- #define UART_ARM_Remap() GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE)
- #endif
- #elif UART_ARM_Periph_Num == 2
- //2号串口
- #define UART_ARM_Periph USART2
- #define UART_ARM_IRQ_Handler USART2_IRQHandler
- #define UART_ARM_IRQ USART2_IRQn
- #define UART_ARM_RccOpen() RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE)
- #if UART_ARM_ReMap_Num == 0
- //2号串口不映射,使用PA2,PA3
- #define UART_ARM_Tx_Port GPIOA
- #define UART_ARM_Tx_Line GPIO_Pin_2
- #define UART_ARM_Tx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE)
- #define UART_ARM_Rx_Port GPIOA
- #define UART_ARM_Rx_Line GPIO_Pin_3
- #define UART_ARM_Rx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE)
- #define UART_ARM_Remap()
- #elif UART_ARM_ReMap_Num == 1
- //2号串映射到 PD5,PD6
- #define UART_ARM_Tx_Port GPIOD
- #define UART_ARM_Tx_Line GPIO_Pin_5
- #define UART_ARM_Tx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE)
- #define UART_ARM_Rx_Port GPIOD
- #define UART_ARM_Rx_Line GPIO_Pin_6
- #define UART_ARM_Rx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE)
- #define UART_ARM_Remap() GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE)
- #endif
- #elif UART_ARM_Periph_Num == 3
- //3号串口
- #define UART_ARM_Periph USART3
- #define UART_ARM_IRQ_Handler USART3_IRQHandler
- #define UART_ARM_IRQ USART3_IRQn
- #define UART_ARM_RccOpen() RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE)
- #if UART_ARM_ReMap_Num == 0
- //3号串口不映射,使用PB10,PB11
- #define UART_ARM_Tx_Port GPIOB
- #define UART_ARM_Tx_Line GPIO_Pin_10
- #define UART_ARM_Tx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE)
- #define UART_ARM_Rx_Port GPIOB
- #define UART_ARM_Rx_Line GPIO_Pin_11
- #define UART_ARM_Rx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE)
- #define UART_ARM_Remap()
- #elif UART_ARM_ReMap_Num == 1
- //3号串映射到 PC10,PC11
- #define UART_ARM_Tx_Port GPIOC
- #define UART_ARM_Tx_Line GPIO_Pin_10
- #define UART_ARM_Tx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE)
- #define UART_ARM_Rx_Port GPIOC
- #define UART_ARM_Rx_Line GPIO_Pin_11
- #define UART_ARM_Rx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE)
- #define UART_ARM_Remap() GPIO_PinRemapConfig(GPIO_PartialRemap_USART3, ENABLE)
- #elif UART_ARM_ReMap_Num == 2
- //3号串映射到 PD8,PD9
- #define UART_ARM_Tx_Port GPIOD
- #define UART_ARM_Tx_Line GPIO_Pin_8
- #define UART_ARM_Tx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE)
- #define UART_ARM_Rx_Port GPIOD
- #define UART_ARM_Rx_Line GPIO_Pin_9
- #define UART_ARM_Rx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE)
- #define UART_ARM_Remap() GPIO_PinRemapConfig(GPIO_FullRemap_USART3, ENABLE)
- #endif
- #elif UART_ARM_Periph_Num == 4
- //4号串口
- #define UART_ARM_Periph UART4
- #define UART_ARM_IRQ_Handler UART4_IRQHandler
- #define UART_ARM_IRQ UART4_IRQn
- #define UART_ARM_RccOpen() RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4,ENABLE)
- #if UART_ARM_ReMap_Num == 0
- //4号串口不映射,使用PC10,PC11
- #define UART_ARM_Tx_Port GPIOC
- #define UART_ARM_Tx_Line GPIO_Pin_10
- #define UART_ARM_Tx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE)
- #define UART_ARM_Rx_Port GPIOC
- #define UART_ARM_Rx_Line GPIO_Pin_11
- #define UART_ARM_Rx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE)
- #define UART_ARM_Remap()
- #elif UART_ARM_ReMap_Num == 1
- //4号端口没有其它映射
- #endif
- #elif UART_ARM_Periph_Num == 5
- //5号串口
- #define UART_ARM_Periph UART5
- #define UART_ARM_IRQ_Handler UART5_IRQHandler
- #define UART_ARM_IRQ UART5_IRQn
- #define UART_ARM_RccOpen() RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART5,ENABLE)
- #if UART_ARM_ReMap_Num == 0
- //5号串口不映射,使用PC12,PD2
- #define UART_ARM_Tx_Port GPIOC
- #define UART_ARM_Tx_Line GPIO_Pin_12
- #define UART_ARM_Tx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE)
- #define UART_ARM_Rx_Port GPIOD
- #define UART_ARM_Rx_Line GPIO_Pin_2
- #define UART_ARM_Rx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE)
- #define UART_ARM_Remap()
- #elif UART_ARM_ReMap_Num == 1
- //5号端口没有其它映射
- #endif
- #endif
- #endif
|