[应用相关] STM32F4 HAL库学习笔记之串口通讯

[复制链接]
1550|32
 楼主| 花间一壶酒sd 发表于 2023-9-30 23:49 | 显示全部楼层
串口发送
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
 楼主| 花间一壶酒sd 发表于 2023-9-30 23:49 | 显示全部楼层
这是HAL库中的串口发送函数,在标准库中串口发送只需要指定串口和数据,但是需要发送多个字节时是需要自己写函数的,如果要求比较高还要另外再做超时程序。
 楼主| 花间一壶酒sd 发表于 2023-9-30 23:49 | 显示全部楼层
在HAl库中使用这个函数可以定义发送长度,增加了超时处理,还是挺方便的,减少了开发的工作量。
调用后要等待发送完成
 楼主| 花间一壶酒sd 发表于 2023-9-30 23:49 | 显示全部楼层
while(__HAL_UART_GET_FLAG(&UART1_Handler,UART_FLAG_TC)!=SET);
 楼主| 花间一壶酒sd 发表于 2023-9-30 23:49 | 显示全部楼层
不然会有各种奇奇怪怪的错误。
 楼主| 花间一壶酒sd 发表于 2023-9-30 23:49 | 显示全部楼层
串口使用流程
上面只是记录了各个函数的使用和原理,毕竟连函数的运行机制都没搞明白也写不出来好的程序,出了错误也找不到。
如果只是想用串口而已,知道下面写这些就可以了
 楼主| 花间一壶酒sd 发表于 2023-9-30 23:49 | 显示全部楼层
首先对串口与硬件级无关的参数进行初始化,对串口初始化
时会调用串口硬件级初始化的回调函数,所以要做好回调函数,在回调函数中做好与硬件相关的串口参数配置,这样便于移植。
 楼主| 花间一壶酒sd 发表于 2023-9-30 23:49 | 显示全部楼层
编写串口中断服务程序,中断触发后会调用串口数据处理回调函数。注意:串口处理函数是公用的,串口中断服务函数不是。
 楼主| 花间一壶酒sd 发表于 2023-9-30 23:50 | 显示全部楼层
串口发送只需要调用库中定义好的函数,指定串口、数据、长度、超时即可。但要注意等待发送完成。
 楼主| 花间一壶酒sd 发表于 2023-9-30 23:50 | 显示全部楼层
总结
C功底不够扎实,库中有很多东西看不明白,各种指针也是绕来绕去,我当初为什么要选择这个专业QAQ,想想当条咸鱼也没什么不好的。
Henryko 发表于 2023-10-10 13:21 | 显示全部楼层
句柄跟结构体有什么区别啊
AloneKaven 发表于 2023-10-10 17:33 | 显示全部楼层
可不可以直接在弱声明函数里写实现啊?
Stahan 发表于 2023-10-11 20:39 | 显示全部楼层
中断服务函数是只有一个吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部