基于STM32H5的UART通信的演示过程

发布者:幸福花开最新更新时间:2024-04-29 来源: elecfans关键字:UART通信 手机看文章 扫描二维码
随时随地手机看文章

最近可能不少人手上弄到了ST发布的的基于M33内核的H5系列Nucleo开发板,这里也用该开发板体验下UART通信,做些验证与确认。【提醒,下面测试过程中没有开启TrustZone功能】


有人在使用过程中,根据开发板手册描述,芯片的UART3默认与STLINK的VCP口相连,测试中感觉好像又不是。这里不妨一起验证下。根据该开放板使用手册描述,UART3[PD8/PD9]默认是与STLINK VCP的接口。

73aed4b2-3257-11ee-9e74-dac502259ad0.png?imageView2/2/w/1000

基于上面硬件条件,使用CubeMx简单配置即可验证。

73f0ddbc-3257-11ee-9e74-dac502259ad0.png?imageView2/2/w/1000

7415f71e-3257-11ee-9e74-dac502259ad0.png?imageView2/2/w/1000

创建工程后,在用户代码里调用HAL_UART_Transmit(&huart3, (uint8_t *)tx1_buffer,  Size, TimeOut)函数,在串口输出终端即可看到结果。看来一切正常。

7457aa24-3257-11ee-9e74-dac502259ad0.png?imageView2/2/w/1000

说明UART3的TX/RX脚【PD8/PD9】的确如手册所言,默认与VCP接口相连。

上面是基于查询方式做了UART的发送,如果采用DMA方式呢?我们也可以顺便体验下。

我这里使用GPDMA1的CH0和CH1,分别实现UART3的接收与发送。UART3的DMA接收采用Circular模式,外设到内存的传输方向;发送采用Normal模式,内存到外设的传输方向。源端与目的端访问数据宽度均为Byte。DMA请求使用标准请求模式。

749e7ff8-3257-11ee-9e74-dac502259ad0.png?imageView2/2/w/1000

74c7a8b0-3257-11ee-9e74-dac502259ad0.png?imageView2/2/w/1000

74f1ba92-3257-11ee-9e74-dac502259ad0.png?imageView2/2/w/1000

创建基于STM32HAL库的工程,添加、整理用户代码。

#deifne RX_SIZE  (16)

#define TX_SIZE  (33)

  

ALIGN_32BYTES (uint8_t tx1_buffer[])='**STM32H5 UART Test with Polling**


';

ALIGN_32BYTES (uint8_t tx_buffer[])='**STM32H5 UART Test with DMA**


';

ALIGN_32BYTES (uint8_t rx_buffer[16]);

  

  __HAL_LINKDMA(&huart3, hdmarx , handle_GPDMA1_Channel0);



  __HAL_LINKDMA(&huart3, hdmatx, handle_GPDMA1_Channel1);

    

   HAL_UART_Receive_DMA(&huart3,  rx_buffer,  RX_SIZE);//For RX

   

   。。。。。

     /* USER CODE BEGIN WHILE */

while (1)

  {



  HAL_Delay(2023);



  HAL_UART_Transmit_DMA(&huart3, (uint8_t *)tx_buffer, TX_SIZE);

  //HAL_UART_Transmit(&huart3, (uint8_t *)tx1_buffer, 37,0xfff);

   huart3.gState = HAL_UART_STATE_READY;

    

  }


稍加调试后运行程序看结果。下面左侧窗口为UART3通过DMA发送出来的信息,右侧为串口助手发送后UART3通过DMA接收到的信息。

752010f4-3257-11ee-9e74-dac502259ad0.png?imageView2/2/w/1000

好,基于STM32H5的UART通信的演示就到这里。内容不难,主要是做了些验证。这些验证过程及结果的确也能为初次接触该板或该MCU系列的人在遇到相关问题时予以信心,在调试受阻时能尽快地锁定问题方向。毕竟做开发调试时,信心和问题方向都是非常重要的因素。


关键字:UART通信 引用地址:基于STM32H5的UART通信的演示过程

上一篇:STM32F7X硬件电路设计解读
下一篇:STM32 ILI9341驱动TFTLCD屏(四)

推荐阅读最新更新时间:2026-03-21 22:08

基于STM32H5UART通信演示过程
最近可能不少人手上弄到了ST发布的的基于M33内核的H5系列Nucleo开发板,这里也用该开发板体验下UART通信,做些验证与确认。【提醒,下面测试过程中没有开启TrustZone功能】 有人在使用过程中,根据开发板手册描述,芯片的UART3默认与STLINK的VCP口相连,测试中感觉好像又不是。这里不妨一起验证下。根据该开放板使用手册描述,UART3 默认是与STLINK VCP的接口。 基于上面硬件条件,使用CubeMx简单配置即可验证。 创建工程后,在用户代码里调用HAL_UART_Transmit(&huart3, (uint8_t *)tx1_buffer, Size, TimeOut)函数,在串口输出终端
[单片机]
基于<font color='red'>STM32H5</font>的<font color='red'>UART</font><font color='red'>通信</font>的<font color='red'>演示</font><font color='red'>过程</font>
STM32 ADC模拟看门狗应用演示过程
我们在做ADC应用时,有些场合需要精确测量出待测信号的数据,有时可能并不关心ADC结果多准确,只要满足某个范围即可,这时我们就可以考虑使用STM32ADC看门狗功能了。 STM32 ADC基本上都支持模拟看门狗功能,即ADC模块对被检测的模拟通道的转换结果基于硬件对其合法性、安全性进行监测。我们可以设置被监测通道的转换结果合法性检查的上下阈值,若结果处于阈值之外则视为异常,并可以触发中断。 尤其有些场合,我们可能使用到数个ADC通道,8个、10个甚至更多,同时程序还需要基于各通道的转换结果进行合法性或安全性监测,此时使用ADC模拟看门狗功能就很方便。我们可以先让模拟看门狗做第一步把关,只有出现异常数据时才去进一步检查确认。
[单片机]
STM32 ADC模拟看门狗应用<font color='red'>演示</font><font color='red'>过程</font>
"WannaCry”勒索病毒席卷全球,记者演示中招过程
从12日开始,一款名为“WannaCry”的病毒席卷全球,其利用NSA黑客工具包中的“永恒之蓝”0Day漏洞,通过445端口(文件共享)在内网进行蠕虫式感染传播,如果用户没有及时安装Windows补丁,这个病毒基本上处于无解状态。下面就随手机便携小编一起来了解一下相关内容吧。 截止昨日,已经有上百个国家和地区,数十万台电脑被感染,包括我国部分高校和大型企业的内网也遭受到病毒的波及。然而,勒索病毒WannaCry还在继续蔓延。 那么,“WannaCry”病毒到底是一个什么样的病毒,如何传播,何以造成如此严重的后果呢?据央视新闻报道,有记者现场演示了该病毒,让我们以最直观的方式了解它↓↓↓ 中毒前(红框内是即将演示用的勒索病毒)
[手机便携]
爱特梅尔Studio6提供1,000个ARM和AVR设计演示设计过程
爱特梅尔Studio 6是免费的IDE,提供了专业质量的开发工具,同时配有爱特梅尔软件框架(先前称为AVR软件框架),因而显著降低了创建新设计的成本。利用爱特梅尔软件框架,设计人员可以获得经验证的大型免费源代码库 — 包括近1000个设计样例。 利用这些代码,设计工程师能够为其项目节省大量的底层源代码的编写工作,最大限度地加快上市时间并保持高质量解决方案。这种软件框架包括一整套用于片上外设和外部器件的驱动程序、有线和无线通信协议栈、音频解码、图形演示,以及定点和浮点数学库。针对爱特梅尔基于ARM处理器的微控制器产品,软件库为Cortex微控制器软件接口标准(CMSIS)提供全面支持。爱特梅尔Studio 6可支持大约300种爱特梅
[单片机]
串行通信协议详解 UART IIC SPI 串口-I2C-SPI协议区分对比
我们也可以看一下,UART、IIC和SPI对比表 特性 串口 IIC SPI 通信速率(最大) 230400 bps 400 kbps(快速) 高达72 MHz(主机) 通信线数量 2 根 2 根 4 根 通信距离 短距离 短距离 短距离 通信协议 异步串行 同步串行 同步串行 硬件复杂度 低 中等 中等 软件复杂度 低 中等 中等 主从设备支持 支持(从设备) 支持(主/从设备) 支持(主/从设备) 多设备通信 支持 支持 支持 数据传输完整性 低 高 高 UART其实也是可以进行多设备通信。在多设备通信时,需要使用分时复用技术或者基于协议的多点通信技术。其中分时复用技术将多个设备连接到同一串口,通过
[单片机]
学会了单片机的UART,就学会了通信
UART(英文全称:Universal Asynchronous Receiver / Transmitter)是一种异步全双工串行通信协议,由Tx和Rx两根数据线组成,因为没有参考时钟信号,所以通信的双方必须约定串口波特率、数据位宽、奇偶校验位、停止位等配置参数,从而按照相同的速率进行通信。 异步通信以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位间的时间间隔是固定的。当波特率为9600bps时,传输一个bit的时间间隔大约为104.16us;波特率为115200bps时,传输一个bit的时间间隔大约为8us。 数据传送速率用波特率来表示,即每秒钟传送的二进制位数。例如数据传
[单片机]
uart串口通信原理是什么?
UART通信协议是什么? UART作为异步串口通信协议的一种,工作原理是将传输数据的每一个字符一位一位地传输。其中每一位(bit)的意义如下: 起始位:先发出一个逻辑“0”的信号,表示传输字符开始。 数据位:紧接着起始位之后。数据位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。 奇偶校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以次来校验数据传送的正确性。 停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。因为数据是在传输线上定时的,并且每一个设备有其自己的时钟,所以很可能在通信中两台设备间出现了小小的不同步。因此停止
[嵌入式]
MSP430F5529-UART串口通信及修改
关于串口通信的方式,在msp430f5529中主要有3种,分别是: UART,IIC 和SPI。本次记录的就是UART这一类的应用,符合uart串口传输的配件可以通过这种方式实现两个MCU之间的通信。 ,首先在用户手册上可以看到: MSP430F5529LP的microcontroller也就是微型处理器上有4个串口通信的接口(包括上面提到的上种种类)。 再看接口图: 这里可以看到: UART(A0)的RT和XT在P3.4和P3.3 IIC(B1)的SCL和SDA在P4.2和P4.1 SPI在P3.0和P3.1,这组接口也可以用于IIC(B0)的SCL和SDA 除了这三组,还有一组UART的借口被用于USB线的编译了,
[单片机]
MSP430F5529-<font color='red'>UART</font>串口<font color='red'>通信</font>及修改
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved