- 博客(7)
- 收藏
- 关注
原创 STM32 串口接收中断 实现 接收定长数据
如果我一开始发送“123456”总共6个字节的数据,串口会打印12345,如果我继续发送4个字节的数据 “1234”,串口会打印“61234”。改写的方法为,去掉前面的“_weak”关键字,复制函数名,进行函数功能的编写即可。在下文有相关的演示代码。从上面的三张图片中可以看出,每次只发送一个字节的数据,i的值便会自动加1,当发送完5个字节的数据,串口调试助手才会打印信息。在上述代码调试的过程中,我发现一个很大的知识盲区,上述代码是通过接收中断接收定长数据,定长为5,如果发送的数据大于5会出现什么问题?
2025-10-29 16:38:19
740
原创 串口***阻塞接收定长数据*
3.如果通过串口调试助手的“发送区”给stm32发送两个字节的数据,stm32在成功接收到数据后,再通过TX把stm32接收到的数据发给串口调试助手的“接收区”,从而就显示在界面上了。注意事项:该函数是阻塞式接收,如果没有接收到规定数量的数据,程序就会一直阻塞在HAL_UART_Receive()这句代码这里。2.如果不通过串口调试助手的“发送区”给stm32发送两个字节的数据,程序就会一直阻塞在HAL_UART_Receive()。我理解的串口,分为两个区,一个“接收区”,一个“发送区”。
2025-10-27 22:52:11
408
原创 【串口发送字符串与重定向printf函数】
通过重写fputc()函数,就可以把printf()输出的字符通过串口发送输出。1.需要添加 #include <stdi0.h> 这个头文件。2.要想使用哪个串口,“&huart1”就修改成哪个串口的句柄。基础配置可查看上一篇的配置。
2025-10-27 21:29:52
124
原创 【stm32+Cubmex串口学习】
在选好“异步模式”后,软件会自动设置下面的信息,当然我们也能手动修改这些数据。最后点击右上角的“GENERATE CODE”即可生成代码。Timeout:超时持续时间(可以这么理解:如果这个时间内没有完成数据的发送,就判定为超时)。*huart:需要向哪个串口发送数据,就填写哪个串口的句柄。2.1 在使用串口之前,需要先配置一下Cubmex基础配置。至此,一般情况下,用cubmex生成代码的基础配置就实现。*pData:要发送的数据的数据缓冲区。Size:要发送数据的大小。2.3 使用串口发送字节数据。
2025-10-27 21:04:56
204
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅