1.串口初始化
//串口0初始化
void uart_log_init(void)
{
uart_config_t uart_config;
rcc_enable_peripheral_clk(RCC_PERIPHERAL_UART0, true);
rcc_enable_peripheral_clk(RCC_PERIPHERAL_GPIOB, true);
//UART0_TX--PB1 UART0_RX--PB0
gpio_set_iomux(GPIOB, GPIO_PIN_0, 1);//复用功能1
gpio_set_iomux(GPIOB, GPIO_PIN_1, 1);//复用功能1
//填好了默认参数 115200 8-1-0
uart_config_init(&uart_config);//初始化结构体
//初始化UART0
uart_init(CONFIG_DEBUG_UART, &uart_config);
//使能接收完成中断
uart_config_interrupt(UART0,UART_INTERRUPT_RX_DONE,true);//打开接收中断
//使能串口
uart_cmd(CONFIG_DEBUG_UART, ENABLE);
//中断配置
NVIC_EnableIRQ(UART0_IRQn);
NVIC_SetPriority(UART0_IRQn, 1);
}
2.串口发送函数
//发送字节
void send_byte(u8 dat)
{
uart_send_data(UART0,dat);
while(uart_get_flag_status(UART0,UART_FLAG_TX_FIFO_EMPTY)==0);
}
//发送字符串
void send_group(u8 *buff,u16 len)
{
while(len--)
{
send_byte(*buff++);
}
}
3.串口中断函数
//中断服务函数
void UART0_IRQHandler(void)
{
if(uart_get_interrupt_status(UART0,UART_INTERRUPT_RX_DONE)!=RESET)
{
uart_clear_interrupt(UART0,UART_INTERRUPT_RX_DONE);
}
}