当前位置:网站首页>【手把手教你使用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之后在继续更新。在此感谢群里细心指导解答疑惑的大佬!!!**
边栏推荐
- 刷题-洛谷-P1200 你的飞碟在这儿Your Ride Is Here
- 搭建MyCat2双主双从的MySQL读写分离
- 基于Nodejs的电商管理平台的设计和实现
- 如何用好建造者模式
- Web3安全风险令人生畏,应该如何应对?
- AWS SES 的监控和告警
- 使用 Chrome 开发者工具 coverage 功能分析 web 应用的渲染阻止资源的执行分布情况
- C语言——青蛙跳台阶(递归)
- [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!...
- adb控制常用命令
猜你喜欢
随机推荐
格密码入门
How to train a deep learning model?
Web3时代的战争
密码学系列之:PEM和PKCS7,PKCS8,PKCS12
使用 Allatori 进行 Jar 包混淆
37.轮播图
Apache服务器配置多个站点
遇到MapStruct后,再也不手写PO,DTO,VO对象之间的转换了
[TypeScript] In-depth study of TypeScript enumeration
Retrofit的使用及原理详解
五分钟入门文本处理三剑客grep awk sed
C语言基础[通俗易懂]
面试官:索引为什么会失效?
零知识证明笔记——私密交易,pederson,区间证明,所有权证明
Using Baidu EasyDL to realize forest fire early warning and identification
C语言——青蛙跳台阶(递归)
Comic | Two weeks after the boss laid me off, he hired me back and doubled my salary!
EasyUi常用代码
【SQL】触发器同步表数据
ASP.NET商贸进销存管理系统源码(带数据库文档)源码免费分享









