昨天在参照GD32的例子做GPIO Rmap为USART0的时候,发现USART0一直无法输出串口数据。
最后在参照STM32的USART0初始化的时候,发现需要enable AFIO
所以参照STM32就在初始化之前调用了下enable RCU_AF clock的动作,然后USART 就可以正常工作了。
void dw_usart_config(void)
{
rcu_periph_clock_enable(RCU_AF);//Need!!!!
rcu_periph_clock_enable(RCU_GPIOB);
gpio_pin_remap_config(GPIO_USART0_REMAP,ENABLE);
/* enable USART clock */
rcu_periph_clock_enable(RCU_USART0);
/* connect port to USARTx_Tx */
gpio_init(GPIOB, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_6);
/* connect port to USARTx_Rx */
gpio_init(GPIOB, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_7);
gpio_pin_remap_config(GPIO_USART0_REMAP,ENABLE);
/* USART configure */
usart_deinit(USART0);
usart_baudrate_set(USART0, 115200U);
usart_receive_config(USART0, USART_RECEIVE_ENABLE);
usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);
//usart_parity_config(USART0,USART_PM_EVEN);
//usart_word_length_set(USART0,USART_WL_8BIT);
//usart_stop_bit_set(USART0,USART_STB_1BIT);
usart_enable(USART0);
//nvic_irq_enable(USART0_IRQn, 3U, 3U);
//usart_interrupt_enable(USART0,USART_INT_RBNE);
}