at32f403arct7,初始化之后,其他串口都可以使用,但是uart5没有输出,使用不了,请问下各位是哪里出了问题?
void uart_config(void)
{
gpio_init_type gpio_init_struct;
/* enable the usart and gpio clock */
crm_periph_clock_enable(CRM_USART1_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_USART2_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_USART3_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_UART4_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_UART5_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_USART6_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_UART7_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_UART8_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOD_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE);
/* 重映射gpio功能 */
gpio_pin_remap_config(UART8_GMUX, TRUE);
gpio_default_para_init(&gpio_init_struct);
/* configure the usart tx pin */
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_init_struct.gpio_mode = GPIO_MODE_MUX;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
/* uart1 tx*/
gpio_init_struct.gpio_pins = GPIO_PINS_9;
gpio_init(GPIOA, &gpio_init_struct);
/* uart2 tx*/
gpio_init_struct.gpio_pins = GPIO_PINS_2;
gpio_init(GPIOA, &gpio_init_struct);
/* uart3 tx*/
gpio_init_struct.gpio_pins = GPIO_PINS_10;
gpio_init(GPIOB, &gpio_init_struct);
/* uart4 tx*/
gpio_init_struct.gpio_pins = GPIO_PINS_10;
gpio_init(GPIOC, &gpio_init_struct);
/* uart5 tx*/
gpio_init_struct.gpio_pins = GPIO_PINS_12;
gpio_init(GPIOC, &gpio_init_struct);
/* uart6 tx*/
gpio_init_struct.gpio_pins = GPIO_PINS_6;
gpio_init(GPIOC, &gpio_init_struct);
/* uart7 tx*/
gpio_init_struct.gpio_pins = GPIO_PINS_4;
gpio_init(GPIOB, &gpio_init_struct);
/* uart8 tx*/
gpio_init_struct.gpio_pins = GPIO_PINS_2;
gpio_init(GPIOC, &gpio_init_struct);
/* configure the usart rx pin */
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_init_struct.gpio_mode = GPIO_MODE_INPUT;
gpio_init_struct.gpio_pull = GPIO_PULL_UP;
/* uart1 rx*/
gpio_init_struct.gpio_pins = GPIO_PINS_10;
gpio_init(GPIOA, &gpio_init_struct);
/* uart2 rx*/
gpio_init_struct.gpio_pins = GPIO_PINS_3;
gpio_init(GPIOA, &gpio_init_struct);
/* uart3 rx*/
gpio_init_struct.gpio_pins = GPIO_PINS_11;
gpio_init(GPIOB, &gpio_init_struct);
/* uart4 rx*/
gpio_init_struct.gpio_pins = GPIO_PINS_11;
gpio_init(GPIOC, &gpio_init_struct);
/* uart5 rx*/
gpio_init_struct.gpio_pins = GPIO_PINS_2;
gpio_init(GPIOD, &gpio_init_struct);
/* uart6 rx*/
gpio_init_struct.gpio_pins = GPIO_PINS_7;
gpio_init(GPIOC, &gpio_init_struct);
/* uart7 rx*/
gpio_init_struct.gpio_pins = GPIO_PINS_3;
gpio_init(GPIOB, &gpio_init_struct);
/* uart8 rx*/
gpio_init_struct.gpio_pins = GPIO_PINS_3;
gpio_init(GPIOC, &gpio_init_struct);
/* config usart nvic interrupt */
nvic_irq_enable(USART1_IRQn, 2, 0);
nvic_irq_enable(USART2_IRQn, 2, 0);
nvic_irq_enable(USART3_IRQn, 2, 0);
nvic_irq_enable(UART4_IRQn, 2, 0);
nvic_irq_enable(UART5_IRQn, 2, 0);
nvic_irq_enable(USART6_IRQn, 2, 0);
nvic_irq_enable(UART7_IRQn, 2, 0);
nvic_irq_enable(UART8_IRQn, 2, 0);
/* enable usart interrupt */
usart_interrupt_enable(USART1, USART_RDBF_INT, TRUE);
usart_interrupt_enable(USART1, USART_TDBE_INT, FALSE);
usart_interrupt_enable(USART2, USART_RDBF_INT, TRUE);
usart_interrupt_enable(USART2, USART_TDBE_INT, FALSE);
usart_interrupt_enable(USART3, USART_RDBF_INT, TRUE);
usart_interrupt_enable(USART3, USART_TDBE_INT, FALSE);
usart_interrupt_enable(UART4, USART_RDBF_INT, TRUE);
usart_interrupt_enable(UART4, USART_TDBE_INT, FALSE);
usart_interrupt_enable(UART5, USART_RDBF_INT, TRUE);
usart_interrupt_enable(UART5, USART_TDBE_INT, FALSE);
usart_interrupt_enable(USART6, USART_RDBF_INT, TRUE);
usart_interrupt_enable(USART6, USART_TDBE_INT, FALSE);
usart_interrupt_enable(UART7, USART_RDBF_INT, TRUE);
usart_interrupt_enable(UART7, USART_TDBE_INT, FALSE);
usart_interrupt_enable(UART8, USART_RDBF_INT, TRUE);
usart_interrupt_enable(UART8, USART_TDBE_INT, FALSE);
/* configure usart param */
usart_init(USART1, 115200, USART_DATA_8BITS, USART_STOP_1_BIT);
usart_parity_selection_config(USART1, USART_PARITY_NONE);
usart_transmitter_enable(USART1, TRUE);
usart_receiver_enable(USART1, TRUE);
usart_enable(USART1, TRUE);
usart_init(USART2, 9600, USART_DATA_8BITS, USART_STOP_1_BIT);
usart_parity_selection_config(USART2, USART_PARITY_NONE);
usart_transmitter_enable(USART2, TRUE);
usart_receiver_enable(USART2, TRUE);
usart_enable(USART2, TRUE);
usart_init(USART3, 9600, USART_DATA_8BITS, USART_STOP_1_BIT);
usart_parity_selection_config(USART3, USART_PARITY_NONE);
usart_transmitter_enable(USART3, TRUE);
usart_receiver_enable(USART3, TRUE);
usart_enable(USART3, TRUE);
usart_init(UART4, 115200, USART_DATA_8BITS, USART_STOP_1_BIT);
usart_parity_selection_config(UART4, USART_PARITY_NONE);
usart_transmitter_enable(UART4, TRUE);
usart_receiver_enable(UART4, TRUE);
usart_enable(UART4, TRUE);
usart_init(UART5, 9600, USART_DATA_8BITS, USART_STOP_1_BIT);
usart_parity_selection_config(UART5, USART_PARITY_NONE);
usart_transmitter_enable(UART5, TRUE);
usart_receiver_enable(UART5, TRUE);
usart_enable(UART5, TRUE);
usart_init(USART6, 460800, USART_DATA_8BITS, USART_STOP_1_BIT);
usart_parity_selection_config(USART6, USART_PARITY_NONE);
usart_transmitter_enable(USART6, TRUE);
usart_receiver_enable(USART6, TRUE);
usart_enable(USART6, TRUE);
usart_init(UART7, 9600, USART_DATA_8BITS, USART_STOP_1_BIT);
usart_parity_selection_config(UART7, USART_PARITY_NONE);
usart_transmitter_enable(UART7, TRUE);
usart_receiver_enable(UART7, TRUE);
usart_enable(UART7, TRUE);
usart_init(UART8, 9600, USART_DATA_8BITS, USART_STOP_1_BIT);
usart_parity_selection_config(UART8, USART_PARITY_NONE);
usart_transmitter_enable(UART8, TRUE);
usart_receiver_enable(UART8, TRUE);
usart_enable(UART8, TRUE);
}
|