STM32CUIDE之串口通信

通信的基本分类

  1. 按通信距离分为短中长三类
  2. 按通信介质也可以分为有线和无线
  3. 按通信的方式也可以分为串行和并行通信,串口通信只是众多串行通信当中的一种形式,通过开发板上的串口,将数据一位一位的一次传输。

所用设备

STM32MP157开发板,STLINK连接器,USB转TTL接口,5V电源。

开发环境

STM32CUBEIDE
STM32CubeIDE是一个多功能的集成开发工具,集成了TrueSTUDIO和STM32CubeMX,将以往的配置和编译的环境合二为一,它是STM32Cube软件生态系统的一部分。点击下载点击下载,目前最新版本为1.3.0

下载过程就不再赘述了,一路NEXT就行,也可以参考其他文档自行下载。

硬件连接

  1. 将开发板和电脑通过USB转TTL连接,GND和GND连,RXD和TXD需要交叉连接

  2. 将PanGu开发板进入Engineering Mode的方式是将拨码开关设置为如下模式1,2OFF,3ON

如图所示
在这里插入图片描述

  1. 新建一个工程在这里插入图片描述
  2. 选择要使用的开发板,我使用的是STM32MP157A

  1. 命名然后finish

在这里插入图片描述

  1. 查阅开发板信息确定UART4串口,用于调试串口,所以我们需要对串口4进行配置

  1. 选用串口4,M4内核,模式选择异步通信。底线的波特率,字节长度,奇偶校验,停止位保持默认。

  1. 需要注意的是当我们配置完串口4以后,软件会自动帮我们选择好接受和发送的引脚,但其实这个引脚只是可以用来做通信的两个引脚,而一个开发板这样的引脚有很多,所以具体的应缴需要我们查找芯片手册电路原理图,自己手动改正。

在这里插入图片描述

  1. 查看原理图可以看到UART_4RX对应引脚应当为PB2

在这里插入图片描述

  1. 同理将UART_TX的引脚改为PG11

在这里插入图片描述

  1. 改为如图所示

在这里插入图片描述

  1. Code Generator第一个选上,这样软件会自动生成外设的.c和.h文件方便我们查看,按住ctrl+s生成代码

在这里插入图片描述

  1. 在main.c中插入如下代码

在这里插入图片描述
使用到的库函数HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)其中huart4是初始化串口控制器的结构体变量的指针,生成代码会被自动定义,pData指向应用缓冲器的指针,我把它定义成了一个ch全局变量,缓存大小为1,Size应用缓存大小(int的话就是4个字节,char一个字节数)Timeout超时设置,超过这个时间函数还没有数据函数不再等待,超时返回继续运行。

  1. 点击左上角小锤子编译

在这里插入图片描述

  1. 编译完成,没有报错,对其进行调试,用stlink来将写好的程序的下载到开发板上并调试。

编译完成在这里插入图片描述

  1. 点击上面那个小虫子,选择Debug Configurations
  2. 调试器选择engineering mode

在这里插入图片描述
在这里插入图片描述

  1. 运行程序然后打开串口调试助手,轮询通信收发成功!

在这里插入图片描述

  1. 串口中断模式的通信后续有时间会继续更新,可以直接在轮询方式上修改,使能UART4的中断,并在主函数里添加函数HAL_UART_Receive_IT(),不仅能接收,还会去使能接收中断。
  2. 新人上手,第一篇笔记,不足之处请各位多多谅解。
发布了1 篇原创文章 · 获赞 4 · 访问量 112

猜你喜欢

转载自blog.csdn.net/m0_46502825/article/details/104947007