你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

HAL库的串口中断问题

[复制链接]
xiao——张 提问时间:2015-8-21 13:50 /
用cubemx生成的代码,如果想让MCU在串口接收数据时进入串口中断, 只有在调用HAL_UART_Receive_IT的同时接收到数据才能进入中断吗??
收藏 评论7 发布时间:2015-8-21 13:50

举报

7个回答
netlhx 回答时间:2015-8-21 20:22:37
是的,新的HAL库和以前的略有不同
xiao——张 回答时间:2015-8-21 22:30:29
netlhx 发表于 2015-8-21 20:22
是的,新的HAL库和以前的略有不同

那如果想要用串口中断打断正在运行的程序 , 就要反复调用这个函数吧?  那岂不是太浪费时间了?
你好我好大家好! 回答时间:2015-8-22 22:07:42
adlu 回答时间:2015-8-28 10:36:42
xiao——张 发表于 2015-8-21 22:30
那如果想要用串口中断打断正在运行的程序 , 就要反复调用这个函数吧?  那岂不是太浪费时间了? ...

HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)函数的功能是设置接收中断的参数,以及使能接收中断。查看一下它的代码就明白了。
函数的第一个参数是串口实例句柄,第二个参数是用于存储接收数据的指针,第三个则是接收多少个数据之后调用接收完成回调函数HAL_UART_RxCpltCallback( )。
adlu 回答时间:2015-8-28 10:48:05
本帖最后由 adlu 于 2015-8-28 10:49 编辑

使用HAL库进行串口中断接收的基本步骤如下:
1.用CubeMX配置UART参数,包括使能UART接收中断,生成程序框架,这一步完成了UART的初始化
2.调用HAL_UART_Receive_IT( )使能接收中断,设置接收数据存储指针和接收数据量;
3.在HAL_UART_RxCpltCallback( )中编写数据处理代码。
adlu 回答时间:2015-8-28 10:52:00
本帖最后由 adlu 于 2015-8-28 10:57 编辑

对于刚使用HAL的用户,要理解它的回调机制并不容易。
可以参考下面这篇文章《使用STM32CubeMX实现中断模式下的串口收发》
http://www.wenkuxiazai.com/doc/c0310a8b227916888586d77e.html
还有版主netlhx的《nucleo教程之三:定个时》
https://www.stmcu.org.cn/module/forum/thread-598395-1-1.html


yiban-406032 回答时间:2016-12-20 16:49:34
学习学习

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版