OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1079|回复: 3

HAL库用哪个函数关闭串口接收中断?

[复制链接]

127

主题

207

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1077
金钱
1077
注册时间
2017-9-11
在线时间
105 小时
发表于 2024-1-1 20:37:41 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 huyuezhan 于 2024-1-2 21:06 编辑

HAL_UART_Receive_IT(&huart1, Res, 1);是使能串口接收中断,收到1字节后保存在Res[0]中
使能串口中断后用什么函数关闭?再用什么函数能再打开?
就是想在使能串口中断后,执行其它任务的时候临时把串口中断关闭,需要的时候再打开。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

465

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1732
金钱
1732
注册时间
2021-4-11
在线时间
320 小时
发表于 2024-1-2 09:33:08 | 显示全部楼层
使用UART_Start_Receive_IT使能中断之后,发生中断会调用HAL库的中断处理函数HAL_UART_IRQHandler,函数里面会调用相应的串口中断回调函数HAL_UART_RxCpltCallback,调用这个中断之前,会将串口的中断关闭的。也可以直接调用__HAL_UART_DISABLE_IT来关闭中断
回复

使用道具 举报

127

主题

207

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1077
金钱
1077
注册时间
2017-9-11
在线时间
105 小时
 楼主| 发表于 2024-1-2 11:49:23 来自手机 | 显示全部楼层
huanan 发表于 2024-1-2 09:33
使用UART_Start_Receive_IT使能中断之后,发生中断会调用HAL库的中断处理函数HAL_UART_IRQHandler,函数里 ...

就是使能中断之后,在串口接收到数据之前手动关闭中断怎么操作?__HAL_UART_DISABLE_IT函数怎么关闭串口接收中断?
回复

使用道具 举报

127

主题

207

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1077
金钱
1077
注册时间
2017-9-11
在线时间
105 小时
 楼主| 发表于 2024-1-2 20:50:44 | 显示全部楼层
我尝试用HAL_UART_AbortReceive_IT()函数将串口接收功能关闭,然后通过HAL_UART_Receive_IT()函数再次打开接收中断。
如果关闭后在打开前不发数据,再打开数据能正常接收;如果关闭后发数据不能正常接收,再打开也不能正常接收
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 22:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表