当前位置:网站首页>【手把手教你使用STM32HAL库的串口空闲中断】
【手把手教你使用STM32HAL库的串口空闲中断】
2022-08-04 20:42:00 【xixiaohuanqaq】
一、 测试环境
STM32H750VBTX开发板
二、步骤
1、打开串口空闲中断
HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
// 在main函数前面 open IDLE ,这个size就是你自己设置的缓冲数组的大小,在下面贴出来的文件有这个函数的定义
此函数在stm32h7xx_hal_uart_ex.c里面,这就已经打开了串口空闲中断,之前查的说的都不正确,在一个交流群里才知道原来是这么简单。

2、直接使用串口空闲回调函数
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
{
if(huart->Instance == USART1){
//直接调用这个串口空闲回调函数即可,这个size就是每次串口接收的字节数
}
HAL_UARTEx_ReceiveToIdle_IT() //再次打开串口空闲中断
}
3、 HAL_UART_IRQHandler(&huart1);
void USART1_IRQHandler(void)
{
/* USER CODE BEGIN USART1_IRQn 0 */
/* USER CODE END USART1_IRQn 0 */
HAL_UART_IRQHandler(&huart1);//标志位的处理这个函数都帮我们处理好了我们直接调用回调函数即可!
/* USER CODE BEGIN USART1_IRQn 1 */
/* USER CODE END USART1_IRQn 1 */
}
三、总结
**通过HAL库使用串口空闲中断就是如此的简单,之前查阅过很多资料,都不是使用HAL库,都是改写的,感觉五花八门,没有真正的去理解HAL库这一套东西,真正使用HAL库会变得简单很多。
目前只使用到了串口空闲中断,后续使用到DMA之后在继续更新。在此感谢群里细心指导解答疑惑的大佬!!!**
边栏推荐
猜你喜欢
随机推荐
QT(42)-QT线程-线程调用槽函数
如何用好建造者模式
CAS :80750-24-9(脱硫生物素 NHS 酯)
mysql的存储过程介绍、创建、案例、删除、查看「建议收藏」
[Academic related] Tsinghua professor persuaded to quit his Ph.D.:I have seen too many doctoral students have mental breakdowns, mental imbalances, physical collapses, and nothing!...
c语言小项目(三子棋游戏实现)
37.轮播图
[Data Mining] Written Exam Questions for Sohu Data Mining Engineers
After the tester with 10 years of service "naked resignation" from the big factory...
Getting Started with Lattice Passwords
idea2021版本添加上一步和下一步操作到工具栏
How to train a deep learning model?
vehemently condemn
C#之app.config、exe.config和vshost.exe.config作用区别
零知识证明——zkSNARK证明体系
漫画 | 老板裁掉我两周后,又把我请回去,工资翻番!
How to make good use of builder mode
SAP ABAP OData 服务如何支持 $select 有选择性地仅读取部分模型字段值试读版
零知识证明笔记——私密交易,pederson,区间证明,所有权证明
数据安全解决方案的发展









