目录
先试一下以查询的方式发送数据,即:HAL_UART_Transmit函数
这个函数的弊端为:发送的字符串,需要计算长度发送的时间要小于超时时间。
所以用中断的方式,只需要直到电脑输入的字符串长度,但是也有弊端
Step2:USART_CR1_IDLEIE并到else的里面去
-
CUBEMX配置
sys,rcc外部高速时钟,串口通讯的USART1,找到手册发现其是PA9,PA10与其串口链接调试,则

再设置为异步

勾选NVIC中断,代码就会生成中断入口函数,其他不用配置

然后配置时钟树,24,170
2.打开工程

打开串口调试助手,测试一下
用电脑给板子发数据
3.找到串口的库函数hal_uart.c
先试一下以查询的方式发送数据,即:HAL_UART_Transmit函数
解读一下分别为:
句柄,USART1,发送数据的数组的指针,size是发送数据的数量,timeout为超时时间

在while中写入发送函数,其中的数组要在外面定义一下,超时时间单位是ms

为了不让板子发送的太快,这里设置一个间隔

下载板子后就可以了


文章详细介绍了如何使用CUBEMX配置STM32的串口通讯,从使用HAL_UART_Transmit函数的查询方式发送数据到改用中断发送,解决了超时问题。接着,作者改造了接收函数,使其能接收任意长度的字符串,通过空闲中断来确定字符串长度,提高了效率。

被折叠的 条评论
为什么被折叠?



