我已经开启了GD32E103的UART的接受中断 在我向GD32发送数据后 中断函数没有执行。
nvic_irq_enable(USART1_IRQn, 2, 0);
usart_interrupt_enable(USART1, USART_INT_RBNE);
usart_interrupt_enable(USART1, USART_INT_RT);
usart_receiver_timeout_enable(USART1);
usart_receiver_timeout_threshold_config(USART1, 1000);
void USART1_IRQHandler(void)
{
if(RESET != usart_interrupt_flag_get(USART1, USART_INT_FLAG_RBNE)){
printf("enter uart1 irq\n");
if(rx_remaining_size != 0)
{
/* read one byte from the receive data register */
rx_buffer[rx_count++] = (uint8_t)usart_data_receive(USART1);
printf("receive:data is %02x\n",(uint8_t)rx_buffer[rx_count]);
if(rx_count >= RX_BUFFER_SIZE)
{
rx_count = 0;
}
rx_store_size++;
rx_remaining_size--;
}
usart_interrupt_flag_clear(USART1, USART_INT_FLAG_RBNE);
}
if(RESET != usart_interrupt_flag_get(USART1, USART_INT_FLAG_RT))
{
printf("enter timeout \n");
uart1_rx_in = rx_count;
usart_interrupt_flag_clear(USART1, USART_INT_FLAG_RT);
}
}
我用串口工具往这个串口发送数据, 另一个串口打印log, log没有打印出来。