当前位置:网站首页>【手把手教你使用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之后在继续更新。在此感谢群里细心指导解答疑惑的大佬!!!**
边栏推荐
猜你喜欢
随机推荐
uwp ScrollViewer content out of panel when set the long width
Nuxt.js的优缺点和注意事项
数字IC设计中基本运算的粗略的延时估计
如何使用 jMeter Parallel Controller - 并行控制器以及一些常犯的错误
暴雨中的人
实现菜单拖拽排序
QT(42)-QT线程-线程调用槽函数
如何进行AI业务诊断,快速识别降本提效增长点?
【1403. 非递增顺序的最小子序列】
web漏洞扫描器-awvs
web 应用开发最佳实践之一:避免大型、复杂的布局和布局抖动
node 的运行命令
【SQL】触发器同步表数据
泰山OFFICE技术讲座:底纹、高亮、边框的关系
在vs code中进行本地调试和开启本地服务器
遇到MapStruct后,再也不手写PO,DTO,VO对象之间的转换了
C语言小笔记+题
win10 uwp 使用 ScaleTransform 放大某个元素
Feign 与 OpenFeign
【TypeScript】深入学习TypeScript枚举