LL库的如下,看你能不能用上。
/**
* @brief This function handles USART1 global interrupt.
*/
void USART1_IRQHandler(void)
{
/* USER CODE BEGIN USART1_IRQn 0 */
if (LL_USART_IsActiveFlag_RXNE(USART1)) {
uart[0].rdBuff[uart[0].rdPtr++] = LL_USART_ReceiveData8(USART1);
if (uart[0].rdEnabled==1) {
if (uart[0].rdPtr==1 && uart[0].rdBuff[0]!=0xBB) uart[0].rdPtr=0;
if (uart[0].rdPtr==2 && uart[0].rdBuff[1]!=0x66) uart[0].rdPtr=0;
if (uart[0].rdPtr==3 && uart[0].rdBuff[2]!=0x66) uart[0].rdPtr=0;
if (uart[0].rdPtr==4 && uart[0].rdBuff[3]!=0xBB) uart[0].rdPtr=0;
}
else uart[0].rdPtr=0;
LL_USART_ClearFlag_RXNE(USART1);
}
else if (LL_USART_IsActiveFlag_IDLE(USART1)) {
uart[0].rdEnded=1;
LL_USART_ClearFlag_IDLE(USART1);
}
/* USER CODE END USART1_IRQn 0 */
|