工作中使用需要USART2 重映射到PC10 和PC11 上;
1.根据手册查只能部分映射
2.程序中采用部分映射
3.附上串口初始化程序;
void USART2_init(void)
{
/*USART2_Ramp
78->Usart2_Tx->PC10
79->Usart2_Rx->PC11 initialize*/
rcu_periph_clock_enable(RCU_AF);
rcu_periph_clock_enable(RCU_GPIOC);
/* enable USART clock */
rcu_periph_clock_enable(RCU_USART2);
gpio_pin_remap_config(GPIO_USART2_PARTIAL_REMAP, ENABLE);
/* connect port to USARTx_Tx */
gpio_init(GPIOC, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_10);
/* connect port to USARTx_Rx */
gpio_init(GPIOC, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_11);
/* USART configure */
usart_deinit(USART2);
usart_baudrate_set(USART2, 115200U);
usart_receive_config(USART2, USART_RECEIVE_ENABLE);
usart_transmit_config(USART2, USART_TRANSMIT_ENABLE);
usart_enable(USART2);
}
int fputc(int ch, FILE *f)
{
usart_data_transmit(USART2, (uint8_t)ch);
while(RESET == usart_flag_get(USART2, USART_FLAG_TBE));
return ch;
}
while(1)
{
printf("a usart transmit test example! \r\n"); //Test
delay_1ms(500);
}
经过测试打印功能正常