|
我使用的是at32f403a,看Usart例程没有找到对应的把GPIO配置成Usart功能啊,只是把GPIO配置成了MUX功能,因为GPIO有多个功能映射到同一个口,不知道它是怎么把它映射到USART功能上的,代码就是例程的代码:
gpio_init_type gpio_init_struct;
/* enable the uart2 and gpio clock */
crm_periph_clock_enable(CRM_USART2_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
gpio_default_para_init(&gpio_init_struct);
/* configure the uart2 tx,rx,de 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_pins = GPIO_PINS_2;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init(GPIOA, &gpio_init_struct);
gpio_init_struct.gpio_pins = GPIO_PINS_3;
gpio_init_struct.gpio_mode = GPIO_MODE_INPUT;
gpio_init_struct.gpio_pull = GPIO_PULL_UP;
gpio_init(GPIOA, &gpio_init_struct);
gpio_init_struct.gpio_pins = GPIO_PINS_1;
gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_init(GPIOA, &gpio_init_struct);
gpio_bits_reset(GPIOA, GPIO_PINS_1);
/* configure uart2 param */
usart_init(USART2, RS485_BAUDRATE, USART_DATA_8BITS, USART_STOP_1_BIT);
usart_flag_clear(USART2, USART_RDBF_FLAG);
usart_interrupt_enable(USART2, USART_RDBF_INT, TRUE);
usart_receiver_enable(USART2, TRUE);
usart_transmitter_enable(USART2, TRUE);
usart_enable(USART2, TRUE);
nvic_irq_enable(USART2_IRQn, 1, 0);
也没有调用gpio_pin_remap_config这个配置函数,不同是怎么映射过来USART的,这个IO也有可能映射其他的复用的啊,望大神指教一下,谢谢
|
|