完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用cubemx生成的代码,如果想让MCU在串口接收数据时进入串口中断, 只有在调用HAL_UART_Receive_IT的同时接收到数据才能进入中断吗??
|
|
相关推荐
7个回答
|
|
是的,新的HAL库和以前的略有不同
|
|
|
|
那如果想要用串口中断打断正在运行的程序 , 就要反复调用这个函数吧? 那岂不是太浪费时间了? |
|
|
|
|
|
HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)函数的功能是设置接收中断的参数,以及使能接收中断。查看一下它的代码就明白了。 函数的第一个参数是串口实例句柄,第二个参数是用于存储接收数据的指针,第三个则是接收多少个数据之后调用接收完成回调函数HAL_UART_RxCpltCallback( )。 |
|
|
|
本帖最后由 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:57 编辑
对于刚使用HAL的用户,要理解它的回调机制并不容易。 可以参考下面这篇文章《使用STM32CubeMX实现中断模式下的串口收发》 http://www.wenkuxiazai.com/doc/c0310a8b227916888586d77e.html 还有版主netlhx的《nucleo教程之三:定个时》 http://www.stmcu.org/module/forum/thread-598395-1-1.html |
|
|
|
学习学习
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
878 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
936 浏览 2 评论
2044 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1145 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1568 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 01:24 , Processed in 0.802357 second(s), Total 86, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号