当前位置:网站首页>【手把手教你使用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之后在继续更新。在此感谢群里细心指导解答疑惑的大佬!!!**
边栏推荐
猜你喜欢

搭建MyCat2双主双从的MySQL读写分离

【debug】postgres数据存储错乱

How to carry out AI business diagnosis and quickly identify growth points for cost reduction and efficiency improvement?

刷题-洛谷-P1200 你的飞碟在这儿Your Ride Is Here

Five Minutes Introductory Text Processing Three Musketeers grep awk sed

Web3时代的战争

Oreo域名授权验证系统v1.0.6公益开源版本网站源码

从卖产品到卖“链路”:20条策略 解读直播带货迭代玩法

CAS :80750-24-9(脱硫生物素 NHS 酯)

37.轮播图
随机推荐
Comic | Two weeks after the boss laid me off, he hired me back and doubled my salary!
C#将对象转换为Dictionary字典集合
[TypeScript] In-depth study of TypeScript enumeration
MySQL stored procedure introduction, creation, case, delete, view "recommended collection"
面试官:Redis中过期的key是怎么被删除的?
adb控制常用命令
Matlab画图2
大资本已开始逃离加密领域?
C语言基础[通俗易懂]
用 Excel 爬取网络数据的四个小案例
香港暂停进口俄罗斯部分地区禽肉及禽类产品
【学术相关】清华教授发文劝退读博:我见过太多博士生精神崩溃、心态失衡、身体垮掉、一事无成!...
Desthiobiotin衍生物Desthiobiotin-PEG4-Amine/Alkyne/Azide/DBCO
run command for node
从卖产品到卖“链路”:20条策略 解读直播带货迭代玩法
零知识证明笔记——私密交易,pederson,区间证明,所有权证明
如何进行AI业务诊断,快速识别降本提效增长点?
拒绝服务攻击DDoS介绍与防范
如何用好建造者模式
linkboy 5.0 正式发布,新增语音识别、图像识别