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

STM32Cube Uart_DMA测试工程

[复制链接]
appllo 发布时间:2015-9-17 16:00
本帖最后由 appllo 于 2015-9-17 16:31 编辑
- K1 v9 w6 x" T8 l& O( }
( o5 N, [9 o+ W- h* X; T1、打开软件,新建工程,选择芯片信号,这里选择file:///C:/Temp/Wiz/4dbfb2a5-f153-4155-944a-4d40a5495286_4_files/6020dc03-9bd2-451a-bddf-4682424732d1.png
3 Y1 a6 w# N8 L/ `: }6 d2、USART1使能选择“Asynchronous”模式:
7 ~# A- X2 G1 a8 g3 \: G; {; n3、配置“RCC”,High Speed Clock (HSE) 选择外部晶振
" [8 h. r: E4 M2 r4、配置“SYS",
3 j4 z; M7 }8 S6 d  Z  Y: m  D5、“Clock Configuration”选项,晶振填8M,选择“HSE”,HCLK填写180MHz,如下图所示
; S# N7 A8 u8 i+ Jfile:///C:/Temp/Wiz/4dbfb2a5-f153-4155-944a-4d40a5495286_4_files/f3536241-50ca-4292-969e-6581d61397f3.png
$ v* ?5 {0 G; `- L6、“Configuration”,点击“file:///C:/Temp/Wiz/4dbfb2a5-f153-4155-944a-4d40a5495286_4_files/bd3e9bbe-9454-4568-a373-f9028750fcdb.png”,对usart1进行配置
8 E1 X2 [0 T4 E; J7 h+ N7 Qfile:///C:/Temp/Wiz/4dbfb2a5-f153-4155-944a-4d40a5495286_4_files/92183fd7-2963-4e26-9cf7-7ad72964c381.png
3 u0 a  @1 U$ w7 N" ?中断一定要都选,否则,程序运行起来,只能运行一次。
% [* j% X; c" s. b7、选项“Project”,选择“Project Setting”,选择习惯使用的编译软件;+ [/ B+ p& @/ }7 o
8、选项“Project”,选择“Generate Code”,生成工程,用MDK打开;
1 L2 m( C1 l  \9、在主函数上使用语句:HAL_UART_Transmit_DMA(&huart1,sendbuf,sizeof(sendbuf));就能通过DMA发送串口数据了。1 t) T( j& C2 ~3 _% i
2.png
3.png
4.png
5.png
6.png
7.png
赞 收藏 2 评论20 发布时间:2015-9-17 16:00

举报

20个回答
appllo 回答时间:2015-9-21 09:23:13
hithfy 发表于 2015-9-20 21:372 U8 Z/ K% P, K5 x4 z. `
可以不用选UART的中断吧,直接在设置DMA的MODE中设置为CIRCULAR,只要不出主函数都会循环加载发送。 ...
8 k; g& N/ b7 D: O  n+ {1 U% f
不会的,有个中断标志位得清楚,最简单的方法就是使能UART中断。。你可以试试,也可以手动清除。
McDong 回答时间:2018-8-3 16:13:33
hithfy 发表于 2015-9-21 18:35
- O! G3 O% R( s但是我就是没有设置串口中断,他还是能正常发送啊?!

; \4 F# @  u5 g8 S不打开串口中断只能发送一次,好像是,DMA串口发送和接收,其实还是会进入串口本身的中断,必须清楚中断标志位,不然串口就一直在busy状态
hithfy 回答时间:2015-9-21 18:35:41
appllo 发表于 2015-9-21 09:23
7 l$ I6 G$ W- u3 J7 j不会的,有个中断标志位得清楚,最简单的方法就是使能UART中断。。你可以试试,也可以手动清除。 ...

$ X: D8 |% }. x0 u但是我就是没有设置串口中断,他还是能正常发送啊?!
wyxy163@126.com 回答时间:2015-9-17 17:47:23
提示: 作者被禁止或删除 内容自动屏蔽
你好我好大家好! 回答时间:2015-9-17 18:36:40
谢谢分享   
Paderboy 回答时间:2015-9-17 19:19:02
多谢分享。。。
netlhx 回答时间:2015-9-18 08:36:32
感谢分享!
shanji 回答时间:2015-9-18 09:24:24
这还是挺方便的
appllo 回答时间:2015-9-18 16:30:17
在设置过程中最重要的就是两个中断都得选上,不然没法使用
hithfy 回答时间:2015-9-20 21:37:08
可以不用选UART的中断吧,直接在设置DMA的MODE中设置为CIRCULAR,只要不出主函数都会循环加载发送。
anger0925 回答时间:2015-9-21 20:50:39
谢谢分享              
appllo 回答时间:2015-9-22 19:11:48
hithfy 发表于 2015-9-21 18:358 ?& u3 r' D; D
但是我就是没有设置串口中断,他还是能正常发送啊?!
( j9 l& K# ]) a7 u
你是用dma发送的吗?
112207301219 回答时间:2015-9-22 20:28:08
不错不错
hithfy 回答时间:2015-9-22 21:10:45
appllo 发表于 2015-9-22 19:11
+ L4 o" w0 A( I' Y0 f) e& e+ U: I+ P你是用dma发送的吗?

: N7 x: T) f- w% ?2 x% b对啊,调用的HAL_UART_Transmit_DMA,并且我在在线调试时主程序停了,它在继续发送(应该是不停在传送吧?!)。。。
appllo 回答时间:2015-9-24 14:25:55
我测试的时候,貌似不行,对了你评估了F7没,那个sd卡,用cube好像用不起来,真是日dog了。。
12下一页
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版