你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
netlhx 发表于 2015-8-21 20:22 是的,新的HAL库和以前的略有不同
xiao——张 发表于 2015-8-21 22:30 那如果想要用串口中断打断正在运行的程序 , 就要反复调用这个函数吧? 那岂不是太浪费时间了? ...
那如果想要用串口中断打断正在运行的程序 , 就要反复调用这个函数吧? 那岂不是太浪费时间了?
HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)函数的功能是设置接收中断的参数,以及使能接收中断。查看一下它的代码就明白了。
函数的第一个参数是串口实例句柄,第二个参数是用于存储接收数据的指针,第三个则是接收多少个数据之后调用接收完成回调函数HAL_UART_RxCpltCallback( )。
使用HAL库进行串口中断接收的基本步骤如下:
1.用CubeMX配置UART参数,包括使能UART接收中断,生成程序框架,这一步完成了UART的初始化
2.调用HAL_UART_Receive_IT( )使能接收中断,设置接收数据存储指针和接收数据量;
3.在HAL_UART_RxCpltCallback( )中编写数据处理代码。
对于刚使用HAL的用户,要理解它的回调机制并不容易。
可以参考下面这篇文章《使用STM32CubeMX实现中断模式下的串口收发》
http://www.wenkuxiazai.com/doc/c0310a8b227916888586d77e.html
还有版主netlhx的《nucleo教程之三:定个时》
https://www.stmcu.org.cn/module/forum/thread-598395-1-1.html