最近可能不少人手上弄到了ST发布的的基于M33内核的H5系列Nucleo开发板,这里也用该开发板体验下UART通信,做些验证与确认。【提醒,下面测试过程中没有开启TrustZone功能】
有人在使用过程中,根据开发板手册描述,芯片的UART3默认与STLINK的VCP口相连,测试中感觉好像又不是。这里不妨一起验证下。根据该开放板使用手册描述,UART3[PD8/PD9]默认是与STLINK VCP的接口。
基于上面硬件条件,使用CubeMx简单配置即可验证。
创建工程后,在用户代码里调用HAL_UART_Transmit(&huart3, (uint8_t *)tx1_buffer, Size, TimeOut)函数,在串口输出终端即可看到结果。看来一切正常。
说明UART3的TX/RX脚【PD8/PD9】的确如手册所言,默认与VCP接口相连。
上面是基于查询方式做了UART的发送,如果采用DMA方式呢?我们也可以顺便体验下。
我这里使用GPDMA1的CH0和CH1,分别实现UART3的接收与发送。UART3的DMA接收采用Circular模式,外设到内存的传输方向;发送采用Normal模式,内存到外设的传输方向。源端与目的端访问数据宽度均为Byte。DMA请求使用标准请求模式。
创建基于STM32HAL库的工程,添加、整理用户代码。
#deifne RX_SIZE (16)