STM32 LL库串口中断

因HAL库运行效率慢,所以串口部分使用LL库,LL库更底层

工程设置

1、开启串口中断
image
2、串口使用LL库
image

程序设置

1、设置中断回调
void LLx_UART2_RxCpltCallback(unsigned char data)
{
    ReceiveData(&wirless_dev, data);
}
2、设置串口中断
void USART2_IRQHandler(void)
{
  /* USER CODE BEGIN USART2_IRQn 0 */
    extern void LLx_UART2_RxCpltCallback();
    
    volatile unsigned char data;
    data = USART2->DR;
    LLx_UART2_RxCpltCallback(data);
    LL_USART_ClearFlag_RXNE(USART2);
  /* USER CODE END USART2_IRQn 0 */
  /* USER CODE BEGIN USART2_IRQn 1 */

  /* USER CODE END USART2_IRQn 1 */
}
3、设置串口发送函数
static void uart2_DataOut(uint8_t * data, uint16_t datasize)
{
    for (uint8_t a = 0; a < datasize; a++)
    {
        while(!LL_USART_IsActiveFlag_TXE(USART2)){};
        LL_USART_TransmitData8(USART2,*(data + a));
    }
}
4、打开串口中断
    LL_USART_ClearFlag_RXNE(USART2);
    LL_USART_EnableIT_RXNE(USART2);

注意:进中断一定要清中断!!!!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容