STMCU小助手
发布时间:2022-8-18 16:44
|
生成例程 使用STM32CUBEMX生成例程,这里使用NUCLEO-F103RB开发板; G# b }( ?) u5 ^# J . h5 r8 X) {4 I1 B, }! e
查看原理图,PA2和PA3设置为开发板的串口。
. [3 `* M9 K! S4 T 配置串口。; k0 R/ h% k1 H+ o/ P; _: N! F
# d/ c a2 h+ ~: n f 开启中断。' o" @* b# P% b4 t2 M
开启DMA读取和接收。 其中Word = 32bit,Half word = 16bit,Byte = 8bit& ] W+ H0 q2 r$ |9 F
4 v% _! [+ z9 i- `( [$ N STM32CUBEIDE配置1 b$ A0 X/ i/ B
$ R$ b! b2 f [- t/ c- g 若需要打印浮点型,需要勾选下面的选项。6 E$ Y8 J( U* d' r3 d5 s! ^/ F
串口重定向 在main.c中,添加头文件,若不添加会出现 identifier “FILE” is undefined报错。2 m# U" M/ W8 R, u1 G, u6 d " x+ F! a# W& [. f* y
函数声明和串口重定向:; @! D9 K( l$ `& R" _, c0 D $ s4 W* e. a/ M) [2 e% G& I
串口发送接收函数, ^" k: K# n/ F! z4 D9 } 一般情况下,串口发送接收函数有如下所示。 ● HAL_UART_Transmit();串口轮询模式发送,使用超时管理机制。1 u1 U+ e9 ^: G3 K ● HAL_UART_Receive();串口轮询模式接收,使用超时管理机制。" V' J, M! k8 B9 K/ y9 v& s ● HAL_UART_Transmit_IT();串口中断模式发送7 N5 D1 }+ y9 D$ Y7 I) D# i4 p. h; q ● HAL_UART_Receive_IT();串口中断模式接收! O( P% c6 C( ^# B- O S ● HAL_UART_Transmit_DMA();串口DMA模式发送1 v x/ B' g; ]# M ● HAL_UART_Receive_DMA();串口DMA模式接收 HAL_UART_Transmit_DMA()发送 测试代码如下。 定义需要发送的数据。& O" c9 x }8 g& e
HAL_UART_Transmit_DMA()发送代码。
DMA有normal和circular两种模式。2 b0 S6 L: e& N: d1 {/ Z Y Normal表单次传输,传输一次后终止传输,所以需要传输几次就需要开启几次,Circular表示循环传输,传输完成后又重新开始继续传输,开启一次后会一直传输。4 h, x, p# I, n normal传输打印如下所示,传输完成就关闭。 / F3 y: H8 |& h0 _( p
( {" M n9 g8 Y/ w circular传输打印如下所示,一直传输,不会停止。+ Z) V/ [* {4 ^2 Y 7 `" {% f0 y- l5 G& a P: o
0 X* |) B. S8 n( f1 P Q HAL_UART_Receive_DMA()发送 测试代码如下。( l4 W1 A; b" G" _ 定义需要接受存放数组。$ M2 C2 U1 K( h2 b V2 E$ b ' |, g5 G1 Y1 n8 I+ x) {
开启HAL_UART_Receive_DMA()接受代码。 F2 r5 D9 L7 S- F- R9 J ( F6 E* M) M6 E; t7 ]' }; q
重写读取回调函数,将接受的数据发送出去在开启接收。
DMA有normal和circular两种模式。 Normal表单次接收,接收一次后终止接收,所以需要接收几次就需要开启几次,Circular表示循环接收,接收完成后又重新头开始继续接收,开启一次后会一直接收。 normal传输打印如下所示,传输完成就关闭。 演示效果如下所示。. i1 C; Q6 X# Y0 d `
( M; i/ W! @. x# | circular接收打印如下所示,当发送数据大于接收长度时候,会进行循环接收。# f5 C; C$ Q6 t) [" R) P- A) l
! m0 Z8 q! j9 ?! L! x8 a |
【STM32H5 评测】基础硬件加密与随机数性能 - STM32H5E5实测硬件AES加解密、HASH运算、TRNG真随机数输出速率与稳定性
【STM32H5 评测】NUCLEO-H5E5ZJ 使用 TrustZone 安全分区系统实践测试
【STM32H5 评测】CPU核心性能 - STM32H5E5跑 RTOS,观察任务切换速度、中断响应快慢
【STM32H5 评测】内存读写性能 - STM32H5E5实测Flash,SRAM读写速度,用DMA搬运大块数据
【NUCLEO-C562RE】OLED 显示
保姆级教程:CMake 工程导入 STM32CubeIDE 步骤
STM32CubeCLT 1.22.0新版本发布
【下载问题解决】关于ST官网下载软件问题解决
【STM32H735G-DK测评】lvgl移植
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
微信公众号
手机版