STM32
直播中

那年我十七_

11年用户 533经验值
私信 关注
[问答]

如何实现STM32F767通过串口和上位机的对话?

如何实现STM32F767通过串口和上位机的对话?

回帖(1)

李新梅

2021-12-16 10:24:29
前言

废话 不知不觉又到了难得的周末,本想慵懒的享受一下这难得的清闲,可心中总有点牵挂。碌碌无为是一天,忙忙碌碌是一天,每个人的生活方式还在于自己内心的选择,而我选择了去做点自己感兴趣的小事,也算告慰自己的内心。
闲话就不多说了,接下来我们来一起看看如何通过STM32CubeMX来配置串口通信,串口通信在平常的项目中用到的挺多,但项目中并不是只用到USART来完成数据传输,通常会和RS485、232、Modbus等结合使用,这不仅可以保证数据的稳定及正确性,还可以有效的增加传输距离。这个我们会在后面慢慢讲怎样和485、232、Modbus结合使用,今天我们就先来看看USART串口通信的基本配置。
USART简介:
STM32F767 的串口资源相当丰富的, 最多可提供 8 路串口, 支持 8/16 倍过采样,支持自动波特率检测、支持 Modbus 通信、 支持同步单线通信和半双工单线通讯、支持 LIN、 支持调制解调器操作、智能卡协议和 IrDA SIR ENDEC 规范、具有 DMA 等。
本节将实现STM32F767通过串口和上位机的对话, STM32F767在收到上位机发过来的字符串后,原原本本的返回给上位机。
第一步 创建工程



  • 打开STM32CubeMX软件,创建新工程。




  • 选择自己所用的芯片。




  • 前面说过了,根据自己的硬件设备选择相应引脚配置为USART_RX及USART_TX。也可以直接找到USART直接配置就行,但是这个时候你可能会发现,这个软件自己设置的IO引脚和我们需要的引脚是有差别的,这个是正常的,我们可以找到我们需要的引脚,直接选择的我们前面配置的USARTx,这个时候之前软件自行选择的引脚就会自动复位。




  • 这一步是配置LED的引脚,为的是用LED等来直接提示我们软件是否在正常的运行。




  • 在配置完LED的引脚之后,我们点击①处进行USART 配置如下图。








  • 完成GPIO的配置后我们来设置USART 的配置,如下图所示,一次安照图中配置即可,这个我们需要注意的是④处有些USART 的波特率等基本的配置,需要我们根据自己的实际情况去配置。




  • 前面的配置已经完成了USART 的发送功能,但是我们的USART 接收是需要中断功能的,因此我们接下来配置中断,如下图。 中断的分组及USART 功能的中断优先级这个需根据项目的需求实际配置。




  • 配置完中断后,便是配置RCC功能,因为本博主用的是外部晶振提供时钟源。如若用芯片内部的时钟源可省略。




  • 然后配置芯片的时钟钟树如下图。




  • 完成时钟树的配置,我们这个USART 配置基本上算是完成了,接下了来便是项目工程的配置。



  • 选择我们项目工程需要配置的一些HAL库,及创建每个功能的.c/.h等,之后直接在右上角生成项目工程即完成了。




  • 打开我们的项目工程查看usart.c文件的初始化配置。




  • 在usart.c中添加中断回调函数,处理串口接收数据的存储。




  • 添加串口的收发功能,将收到的数据原原本本的发回去,LED的闪烁提示软件正在运行。





第二步 下载验证

将我们的工程编译完成后下载来验证是否完成我们本节的需求,如下图所示。







































总结

STM32CubeMX软件配置USART 串口通信按照上面我们就已经完成了,看到这不妨自己动手去试试,整体下来并不是很难,在我们用熟了之后,我们只需简单的看看需要注意的哪些点即可。 现在距离新一天的开始还有六分钟,就在此别过了,本节就到这里了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分