STMCU小助手
发布时间:2022-8-18 16:36
|
硬件准备& V, J. W6 x8 O 这里准备了GD32303C_START开发板进行验证。; |4 e$ S" j7 B7 p* U* I 3 I8 n9 K" |. @ c. X+ C
STM32CUBEMX配置5 s$ b: k6 Z, \2 J) H8 ` " X, d* ]$ i1 ^: `- w' V: s. o
, a% E$ ~. E9 o2 v& y 勾选中断。2 \8 n3 \% H# S3 B/ r- } X
开启DMA读取和接收。, |6 r1 }* r/ B/ ^ 其中Word = 32bit,Half word = 16bit,Byte = 8bit % u7 ]$ L% f( E7 B4 c! A3 [& X, ~
/ G0 C1 r0 S4 u- c
% M7 n5 z( e+ b3 R1 S, E keil配置5 {4 g4 B% D3 ~4 f microlib 进行了高度优化以使代码变得很小。 它的功能比缺省 C 库少,并且根本不具备某些 ISO C 特性。 某些库函数的运行速度也比较慢,如果要使用printf(),必须开启。 " f& K1 l( h) t8 P3 w
串口重定向1 d) A7 ~6 @! ]; M3 c 在main.c中,添加头文件,若不添加会出现 identifier “FILE” is undefined报错。/ _. ?* H+ U" d9 G2 \# E$ Z, U1 e& h
函数声明和串口重定向:
串口接收发送函数 一般情况下,串口接收发送函数有如下所示。 ● HAL_UART_Transmit();串口轮询模式发送,使用超时管理机制。 ● HAL_UART_Receive();串口轮询模式发送,使用超时管理机制。% T D: k2 Y) Q/ U1 W+ G, Y ● HAL_UART_Transmit_IT();串口中断模式发送 ● HAL_UART_Receive_IT();串口中断模式接收( u5 t' f- k$ V0 W5 T ● HAL_UART_Transmit_DMA();串口DMA模式发送3 T6 c* L9 A( @: C( I d; o ● HAL_UART_Receive_DMA();串口DMA模式接收 HAL_UART_Transmit_DMA()发送 测试代码如下。 L) V' J- k$ L' ^( N8 G5 H 定义需要发送的数据。
HAL_UART_Transmit_DMA()发送代码。, [ j, I8 I8 q5 C0 q & t2 }" s5 e B, P1 c" N. x& m7 l8 N2 C
DMA有normal和circular两种模式。; I9 q6 @1 n7 x# ~# E! c2 F Normal表单次传输,传输一次后终止传输,所以需要传输几次就需要开启几次,Circular表示循环传输,传输完成后又重新开始继续传输,开启一次后会一直传输。 normal传输打印如下所示,传输完成就关闭。 & s7 x( D7 j$ [! W- e0 v s+ d U
circular传输打印如下所示,一直传输,不会停止。* p1 a5 D6 W' S8 R( O& P! o" e- G ; p' B. }2 ^1 l
HAL_UART_Receive_DMA()发送, z" A5 l+ C7 {8 T: e 测试代码如下。 定义需要接受存放数组。6 V2 ?0 j6 X+ T7 Y' d& ^! w - v" m$ L6 g) a3 `2 ?9 ]
开启HAL_UART_Receive_DMA()接受代码。6 j9 a9 Y9 ^, K # m, h* z2 [! K% [9 v
重写读取回调函数,将接受的数据发送出去在开启接收。( t* w3 a6 l# r; @ ! S4 l h" J! w# G9 G6 O7 Y
DMA有normal和circular两种模式。 Normal表单次接收,接收一次后终止接收,所以需要接收几次就需要开启几次,Circular表示循环接收,接收完成后又重新头开始继续接收,开启一次后会一直接收。 normal传输打印如下所示,传输完成就关闭。 K( T& H' X& f" ^( Q 演示效果如下所示。 ( {8 {& x( Z0 m$ Y- t+ \
circular接收打印如下所示,当发送数据大于接收长度时候,会进行循环接收。
S% }9 z, x0 j7 }! L |
【STM32H5 评测】ADC 电压表
【STM32H5 评测】基础硬件加密与随机数性能 - STM32H5E5实测硬件AES加解密、HASH运算、TRNG真随机数输出速率与稳定性
【STM32H5 评测】NUCLEO-H5E5ZJ 使用 TrustZone 安全分区系统实践测试
【STM32H5 评测】CPU核心性能 - STM32H5E5跑 RTOS,观察任务切换速度、中断响应快慢
【STM32H5 评测】介绍、环境搭建、工程测试
#双节活动 1.在CubeMX中引用touchGFX出现的问题与解决
如何将STM32CubeMX生成的CMake工程导入STM32CubeIDE
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
STM32CubeCLT 1.22.0新版本发布
【下载问题解决】关于ST官网下载软件问题解决
微信公众号
手机版