STM32
直播中

elecfans

16年用户 1708经验值
擅长:可编程逻辑
私信 关注
[问答]

如何去实现STM32CUIDE的串口通信设计

串口通信的基本分类有哪几种?

STM32CubeIDE是什么?如何去实现STM32CUIDE的串口通信设计?

回帖(1)

于惠

2021-12-8 13:53:42
通信的基本分类



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

所用设备

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

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




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



  • 将开发板和电脑通过USB转TTL连接,GND和GND连,RXD和TXD需要交叉连接
  • 将PanGu开发板进入Engineering Mode的方式是将拨码开关设置为如下模式1,2OFF,3ON




  • 新建一个工程



  • 选择要使用的开发板,我使用的是STM32MP157A








  • 命名然后finish








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








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








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








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








  • 同理将UART_TX的引脚改为PG11








  • 改为如图所示








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








  • 在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超时设置,超过这个时间函数还没有数据函数不再等待,超时返回继续运行。


  • 点击左上角小锤子编译








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

编译完成






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













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








  • 串口中断模式的通信后续有时间会继续更新,可以直接在轮询方式上修改,使能UART4的中断,并在主函数里添加函数HAL_UART_Receive_IT(),不仅能接收,还会去使能接收中断。
  • 新人上手,第一篇笔记,不足之处请各位多多谅解。
举报

更多回帖

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