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

发布时间:2024-04-29  

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


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

73aed4b2-3257-11ee-9e74-dac502259ad0.png

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

73f0ddbc-3257-11ee-9e74-dac502259ad0.png

7415f71e-3257-11ee-9e74-dac502259ad0.png

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

7457aa24-3257-11ee-9e74-dac502259ad0.png

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

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

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

749e7ff8-3257-11ee-9e74-dac502259ad0.png

74c7a8b0-3257-11ee-9e74-dac502259ad0.png

74f1ba92-3257-11ee-9e74-dac502259ad0.png

创建基于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

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


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>