STMCU小助手
发布时间:2022-9-5 22:15
|
生成例程% t, {3 b/ y" |% k" v! ?( P% i& X. ? 使用STM32CUBEMX生成例程,这里使用NUCLEO-F103RB开发板 / e& Z* Q4 U# _
查看原理图,PA2和PA3设置为开发板的串口。4 H1 m9 X* H; q" f5 x( ] 6 v1 S3 b! Z: w1 H# D! D7 a
, a0 H0 O" x, T 配置串口。
. K% a. N9 u1 W# \0 ? 开启中断。. i' K6 U$ ] } D; m/ g3 a `
开启DMA读取和接收。8 K O& }4 b, p' u 其中Word = 32bit,Half word = 16bit,Byte = 8bit8 B4 t3 l& g9 @2 }/ o0 [
STM32CUBEIDE配置+ ]6 ]6 W+ V4 i$ v) x ! |4 ?. ^, E2 _! V8 u3 q
' A0 ~8 K- `2 ?! F& p, f3 T 若需要打印浮点型,需要勾选下面的选项。 , X- v$ i! v. ~8 v7 i) X8 b
1 |7 r# e0 i/ d% n8 G$ Q 串口重定向 在main.c中,添加头文件,若不添加会出现 identifier “FILE” is undefined报错。* O* N9 D# A d$ L) s- }/ Z : Y9 f1 S6 z \# ]" u6 U! Q) G; r
函数声明和串口重定向:% ^+ e/ D9 ?, J' d ' f6 [1 M. C2 U- h1 _' u! `: \
串口发送接收函数 一般情况下,串口发送接收函数有如下所示。2 c- A& v7 A( Q: u0 `9 K ● HAL_UART_Transmit();串口轮询模式发送,使用超时管理机制。5 l* { I4 p$ c. U) V, v4 G0 a& l ● HAL_UART_Receive();串口轮询模式接收,使用超时管理机制。 ● HAL_UART_Transmit_IT();串口中断模式发送 ● HAL_UART_Receive_IT();串口中断模式接收. a+ K! |: ?* w' n1 O ● HAL_UART_Transmit_DMA();串口DMA模式发送 ● HAL_UART_Receive_DMA();串口DMA模式接收 HAL_UART_Transmit_DMA()发送 测试代码如下。 定义需要发送的数据。' f# P& G1 w4 \/ V % p L5 u$ L- n( _. N/ [9 N: ]
HAL_UART_Transmit_DMA()发送代码。
DMA有normal和circular两种模式。 Normal表单次传输,传输一次后终止传输,所以需要传输几次就需要开启几次,Circular表示循环传输,传输完成后又重新开始继续传输,开启一次后会一直传输。 normal传输打印如下所示,传输完成就关闭。 9 ~3 d$ w& ]- ^+ e( O0 ?+ _
$ z% h0 j# [* c7 o circular传输打印如下所示,一直传输,不会停止。# x4 r8 y1 L# `
HAL_UART_Receive_DMA()发送 测试代码如下。6 ^7 ?7 V ~3 o( u9 f/ q8 |: a 定义需要接受存放数组。
开启HAL_UART_Receive_DMA()接受代码。- S9 r; \& r6 B6 D4 m7 l, G# D . N6 l+ L! Y5 w
重写读取回调函数,将接受的数据发送出去在开启接收。% C$ w6 g/ g3 Y * J/ j! B; j3 y4 X3 ^
DMA有normal和circular两种模式。 Normal表单次接收,接收一次后终止接收,所以需要接收几次就需要开启几次,Circular表示循环接收,接收完成后又重新头开始继续接收,开启一次后会一直接收。/ ? Z7 n6 A! {9 s4 ]# V6 f normal传输打印如下所示,传输完成就关闭。- N |8 ]( E4 C2 N1 g( ` 演示效果如下所示。9 V. h6 ]$ x! \* @2 Y3 X* I; Y! A
circular接收打印如下所示,当发送数据大于接收长度时候,会进行循环接收。- @7 B% r9 T, f+ p; H0 K0 v
———————————————— 版权声明:记帖$ M$ J' C0 `, `9 U' J8 X j; z: Q + C& v9 j* T: N2 u4 V2 I |
【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 编译和测试
微信公众号
手机版