这个是串口的中断函数
void USART5_IRQHandler(void) {
if(RESET != usart_interrupt_flag_get(USART5, USART_INT_RBNEIE)){
rx_buffer[rx_counter] = (uint8_t)usart_data_receive(USART5);
rx_counter++;
DISABLE_INT();
offset_rx++;
ENABLE_INT();
if(rx_counter >= BUFFER_SIZE){
rx_counter = 0;
}
}
}
由于本人不太熟悉用法,请求指点
MCU获得串口发送的完整信息
void USART5_IRQHandler(void)
{
u8 data;
if(RESET != usart_interrupt_flag_get(USART5, USART_INT_RBNEIE))
{
data= (uint8_t)usart_data_receive(USART5);
//这里一定要先判断头,比如头是0xAA
if(data==0xAA)
{
rx_counter =0;
}
rx_buffer[rx_counter] = data;
rx_counter++;
DISABLE_INT();
offset_rx++;
ENABLE_INT();
if(rx_counter >= BUFFER_SIZE)
{
rx_counter = 0;
}
}
}
使用官方SDK例子