【STM32】串口

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

【STM32】串口

史迪仔不坏   2021-02-04 我要评论

一、 串口中断使能问题

错误:

串口只能接收一次数据,从串口助手发第二个数据时接收不到。

分析:

在UART_Receive_IT(huart)函数里,回调函数的上面有如下代码:

 

 

这几行代码的作用是关闭串口接收中断,也就是说,在一次串口中断接收过程的最后,即串口接收完一组数据之后会关闭串口接收中断。

解决:

在回调函数中实现接收到数据之后的操作(比如处理数据)并再次使能串口接收中断。

 

 总结:

串口中断接收用法:

(1)指定一个缓存区(串口接收到的数据会全部堆到这个缓存区)

(2)使能串口接收中断,并把缓存区对应到串口

(3)在回调函数中实现接收到数据之后的操作(比如处理数据)并再次使能串口接收中断。

串口接收的流程:

(1)串口一个接一个的接收到数据填充到缓存区

(2)缓存区满(大小是用户定义的)程序几经辗转最后会调用到回调函数。

(3)执行用户在回调函数中实现的功能。

参考链接:

https://www.cnblogs.com/dongxiaodong/p/14275284.html

二、串口助手配置问题

错误:

从串口助手发送1个数据,经过取反后再次发送到上位机,得到了3个数据,且多的数据是F2和F5。

 

分析:

F2和F5的原数据是0A和0D,其对应的ASCII分别是换行符和回车符。这是由于我们在串口助手中勾选了“发送新行”,因此每次从上位机向单片机发送1个数据后,串口助手会自动换行,即加上\n和\r两个符号。

解决:

去勾选“发送新行”即可。

 

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们