发新帖我要提问
12
返回列表
打印
[应用相关]

STM32F4 HAL库学习笔记之串口通讯

[复制链接]
手机看帖
扫描二维码
随时随地手机跟帖
21
花间一壶酒sd|  楼主 | 2023-9-30 23:49 | 只看该作者 回帖奖励 |倒序浏览
串口发送
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)

使用特权

评论回复
22
花间一壶酒sd|  楼主 | 2023-9-30 23:49 | 只看该作者
这是HAL库中的串口发送函数,在标准库中串口发送只需要指定串口和数据,但是需要发送多个字节时是需要自己写函数的,如果要求比较高还要另外再做超时程序。

使用特权

评论回复
23
花间一壶酒sd|  楼主 | 2023-9-30 23:49 | 只看该作者
在HAl库中使用这个函数可以定义发送长度,增加了超时处理,还是挺方便的,减少了开发的工作量。
调用后要等待发送完成

使用特权

评论回复
24
花间一壶酒sd|  楼主 | 2023-9-30 23:49 | 只看该作者
while(__HAL_UART_GET_FLAG(&UART1_Handler,UART_FLAG_TC)!=SET);

使用特权

评论回复
25
花间一壶酒sd|  楼主 | 2023-9-30 23:49 | 只看该作者
不然会有各种奇奇怪怪的错误。

使用特权

评论回复
26
花间一壶酒sd|  楼主 | 2023-9-30 23:49 | 只看该作者
串口使用流程
上面只是记录了各个函数的使用和原理,毕竟连函数的运行机制都没搞明白也写不出来好的程序,出了错误也找不到。
如果只是想用串口而已,知道下面写这些就可以了

使用特权

评论回复
27
花间一壶酒sd|  楼主 | 2023-9-30 23:49 | 只看该作者
首先对串口与硬件级无关的参数进行初始化,对串口初始化
时会调用串口硬件级初始化的回调函数,所以要做好回调函数,在回调函数中做好与硬件相关的串口参数配置,这样便于移植。

使用特权

评论回复
28
花间一壶酒sd|  楼主 | 2023-9-30 23:49 | 只看该作者
编写串口中断服务程序,中断触发后会调用串口数据处理回调函数。注意:串口处理函数是公用的,串口中断服务函数不是。

使用特权

评论回复
29
花间一壶酒sd|  楼主 | 2023-9-30 23:50 | 只看该作者
串口发送只需要调用库中定义好的函数,指定串口、数据、长度、超时即可。但要注意等待发送完成。

使用特权

评论回复
30
花间一壶酒sd|  楼主 | 2023-9-30 23:50 | 只看该作者
总结
C功底不够扎实,库中有很多东西看不明白,各种指针也是绕来绕去,我当初为什么要选择这个专业QAQ,想想当条咸鱼也没什么不好的。

使用特权

评论回复
31
Henryko| | 2023-10-10 13:21 | 只看该作者
句柄跟结构体有什么区别啊

使用特权

评论回复
32
AloneKaven| | 2023-10-10 17:33 | 只看该作者
可不可以直接在弱声明函数里写实现啊?

使用特权

评论回复
33
Stahan| | 2023-10-11 20:39 | 只看该作者
中断服务函数是只有一个吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则