你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32C542RC开发板的串口DMA发送及接收实验

[复制链接]
老牛洋车 发布时间:2026-9-28 13:39
继前天完成了STM32C542RC开发板串口通讯的printf()发送实验后,昨天接着继续进行串口DMA收发的测试。首先进行的是DMA发送的实验,照旧是抄教程的代码,核对无误后编译却出错:
4 U  Q8 S, V/ W2 \: h, r) T# J$ P
, F3 [3 K$ G* ^5 z0 C2 @' t( Q, @! {6 n
反复检查出错行的代码,都找不到出错的原因,只好边发帖求助,边继续尝试找原因。最后我尝试将输入的函数参数的类型删除,直接输入参数,输完之后系统竟自动显示出参数的类型,这才知道在VS Code中函数参数的类型是不能手动输入的。找到原因之后,再编译下载就很顺利了,串口调试助手正常接收到了信息:
1 l0 c/ U, D5 Z, Z; _- ]4 z  f
8 U) @0 z) T3 U, o
- ]! |9 R8 P0 I  B0 V6 p0 g今天则进行DMA接收的测试,代码的输入和编译倒是顺利,只是因为我的电脑放在书房的角落,两侧都是窗子,背景很亮。而VS Code的背景是黑色的,很难辨认界面上的菜单及信息提示。加上界面操作不熟悉,进入了调试后竟然找不到退出的按钮了,之前在工具栏上的图标不知为何也没有了。后来只好将屏幕后面的窗子加上遮光,这才从菜单上找到相应的选项:6 }7 R. @$ r3 L
UART_40.png + w! y% I, Q; c6 a2 d

1 O4 P# Z* n* S% t" C1 \最后我略微修改了代码,在上主循环里加上了LED闪烁的代码,还加在按键中断处理函数中加上了发送RX_Buffer信息的代码,当按下按键时就会发送串口接收到的信息。
& y- W9 I7 T9 q% N2 i* ^4 N这是照抄教程中的定义RX_Buffer的代码:
+ P% _9 T! |* p9 G" ] UART_36.png 9 N+ A8 ^( K6 G# r& `: Q! d
: u( `  k4 e; o9 j1 h- l1 Z
下面是照抄教程中的接收中断回调函数:
9 B7 }( z1 R4 _ UART_38.png
& ?# o/ B4 l0 e; j9 K. [( {
; ]9 g1 k5 X: d6 a0 z这是串口收发的截图:1 R6 K4 J( Z0 ]! @5 `2 F% {1 T
UART_37.png
$ w( y% v$ b7 \) @. R$ f$ m
! C# O3 [: a2 P" T0 C" D  o这是我添加的代码:* v! c; j2 |8 C( u& O9 n
UART_39.png % N/ e  ^( c* G1 q
% G+ r: [' n/ X+ v, R. p
至此,串口通讯的测试算是基本完成了。9 l0 Z1 b9 y" ?- i1 v

2 X% `" R& b+ H+ E% l) S
赞 收藏 评论0 发布时间:2026-9-28 13:39

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版