OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 47740|回复: 71

串口DMA接收和发送实例 F1和F7

  [复制链接]

6

主题

108

帖子

1

精华

高级会员

Rank: 4

积分
716
金钱
716
注册时间
2017-4-25
在线时间
203 小时
发表于 2018-12-1 23:49:45 | 显示全部楼层 |阅读模式
本帖最后由 biglu 于 2018-12-1 23:51 编辑

测试了一下串口DMA收发的功能,写了下面四个实例,记录一下。
1. 第1个例子基于战舰V3的标准库版本,串口1的DMA接收加空闲中断,用普通的串口发送出去。
2. 第2个例子基于战舰V3的标准库版本,串口1的DMA接收加空闲中断,再用DMA发送出去。
3. 后2个例子基于阿波罗F767的HAL库版本和战舰V3的HAL库版本,串口1的DMA接收加空闲中断,再用DMA发送出去,多了个DMA方式发送printf。


另外,用F7的时候,空闲中断读取DMA前要先关闭DCache,否则会有别的错误问题。


基于战舰V3_F103_标准库_UART1_DMA接收.rar

285.95 KB, 下载次数: 1519

基于战舰V3_F103_标准库_UART1_DMA接收和发送.rar

287.84 KB, 下载次数: 1669

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

108

帖子

1

精华

高级会员

Rank: 4

积分
716
金钱
716
注册时间
2017-4-25
在线时间
203 小时
 楼主| 发表于 2021-7-11 23:27:12 | 显示全部楼层
补一个g0系列的,后面把代码全传gitee了。 https://gitee.com/biglu/driver_test?_sasdk=f%3ECCBE%40%3F

stm32g071rb_usart_dma.rar

1.31 MB, 下载次数: 183

回复 支持 反对

使用道具 举报

6

主题

108

帖子

1

精华

高级会员

Rank: 4

积分
716
金钱
716
注册时间
2017-4-25
在线时间
203 小时
 楼主| 发表于 2018-12-1 23:50:50 | 显示全部楼层
一次上传最多20M  补上后面2个例子。

基于阿波罗_F767_UART_DMA_HAL库.rar

1010.07 KB, 下载次数: 809

基于战舰V3_F103_UART_DMA_HAL库.rar

5.23 MB, 下载次数: 2278

回复 支持 2 反对 0

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10567
金钱
10567
注册时间
2017-2-18
在线时间
1913 小时
发表于 2018-12-2 14:56:18 | 显示全部楼层
多谢分享!!!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2018-12-4 02:06:32 | 显示全部楼层
cool
回复 支持 反对

使用道具 举报

17

主题

466

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2164
金钱
2164
注册时间
2013-1-11
在线时间
510 小时
发表于 2018-12-4 11:43:33 | 显示全部楼层
多谢分享!!!
知识是你最好的财富
回复 支持 反对

使用道具 举报

13

主题

633

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1331
金钱
1331
注册时间
2016-8-1
在线时间
229 小时
发表于 2018-12-4 11:55:41 | 显示全部楼层
哇塞好东西
回复 支持 反对

使用道具 举报

13

主题

633

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1331
金钱
1331
注册时间
2016-8-1
在线时间
229 小时
发表于 2018-12-4 11:56:17 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

19

主题

86

帖子

0

精华

高级会员

Rank: 4

积分
792
金钱
792
注册时间
2013-9-29
在线时间
178 小时
发表于 2018-12-12 16:35:08 | 显示全部楼层
谢谢分享啊
回复 支持 反对

使用道具 举报

2

主题

474

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6435
金钱
6435
注册时间
2018-6-27
在线时间
545 小时
发表于 2018-12-12 19:10:26 | 显示全部楼层
谢谢分享,学习学习。
回复 支持 反对

使用道具 举报

6

主题

108

帖子

1

精华

高级会员

Rank: 4

积分
716
金钱
716
注册时间
2017-4-25
在线时间
203 小时
 楼主| 发表于 2018-12-12 19:27:18 | 显示全部楼层
又发了一些ADC的DMA相关实例,有需要的可以点我的帖子去看看。
回复 支持 反对

使用道具 举报

29

主题

73

帖子

0

精华

高级会员

Rank: 4

积分
511
金钱
511
注册时间
2015-10-11
在线时间
102 小时
发表于 2018-12-29 14:37:33 | 显示全部楼层
能不能实现接收用DMA完成,一帧字符接收完后再中断,让CPU直接访问内存就好了
回复 支持 反对

使用道具 举报

6

主题

108

帖子

1

精华

高级会员

Rank: 4

积分
716
金钱
716
注册时间
2017-4-25
在线时间
203 小时
 楼主| 发表于 2018-12-29 18:29:14 | 显示全部楼层
未来,我来 发表于 2018-12-29 14:37
能不能实现接收用DMA完成,一帧字符接收完后再中断,让CPU直接访问内存就好了

额 不就是空闲中断么
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2018-10-14
在线时间
8 小时
发表于 2018-12-30 22:54:01 | 显示全部楼层
多谢分享,近来正在学习这方面的知识
回复 支持 反对

使用道具 举报

4

主题

59

帖子

0

精华

高级会员

Rank: 4

积分
745
金钱
745
注册时间
2018-12-27
在线时间
82 小时
发表于 2019-1-4 09:01:24 | 显示全部楼层
厉害厉害。。。
回复 支持 反对

使用道具 举报

4

主题

103

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3294
金钱
3294
注册时间
2016-7-23
在线时间
269 小时
发表于 2019-1-4 09:11:33 | 显示全部楼层
正学习DMA                     
回复 支持 反对

使用道具 举报

5

主题

12

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2019-1-4
在线时间
22 小时
发表于 2019-1-4 17:53:21 | 显示全部楼层
打不开呢
回复 支持 反对

使用道具 举报

6

主题

108

帖子

1

精华

高级会员

Rank: 4

积分
716
金钱
716
注册时间
2017-4-25
在线时间
203 小时
 楼主| 发表于 2019-1-4 20:09:54 | 显示全部楼层

工程打不开?你用的Keil4?
回复 支持 反对

使用道具 举报

5

主题

12

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2019-1-4
在线时间
22 小时
发表于 2019-1-4 20:53:58 | 显示全部楼层
biglu 发表于 2019-1-4 20:09
工程打不开?你用的Keil4?

谢谢,打开了
回复 支持 反对

使用道具 举报

2

主题

70

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
366
金钱
366
注册时间
2019-1-16
在线时间
101 小时
发表于 2019-1-20 09:15:13 | 显示全部楼层
谢谢分享!!
回复 支持 反对

使用道具 举报

2

主题

70

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
366
金钱
366
注册时间
2019-1-16
在线时间
101 小时
发表于 2019-1-20 09:29:25 | 显示全部楼层
在串口DMA接收,把配置改为循环模式DMA_Mode_Circular,下载下去板子,发现没什么改变呢,还是说在这模式下,这配置不起作用呢。
回复 支持 反对

使用道具 举报

6

主题

108

帖子

1

精华

高级会员

Rank: 4

积分
716
金钱
716
注册时间
2017-4-25
在线时间
203 小时
 楼主| 发表于 2019-1-20 18:18:02 | 显示全部楼层
拿着扁担去跳水 发表于 2019-1-20 09:29
在串口DMA接收,把配置改为循环模式DMA_Mode_Circular,下载下去板子,发现没什么改变呢,还是说在这模式下 ...

你指的哪个例子下的?
回复 支持 反对

使用道具 举报

0

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2013-11-12
在线时间
24 小时
发表于 2019-3-5 10:57:47 | 显示全部楼层
帮顶!帮顶!
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

高级会员

Rank: 4

积分
915
金钱
915
注册时间
2018-3-3
在线时间
68 小时
发表于 2019-3-11 18:37:53 | 显示全部楼层
厉害了
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

高级会员

Rank: 4

积分
915
金钱
915
注册时间
2018-3-3
在线时间
68 小时
发表于 2019-3-11 18:38:26 | 显示全部楼层
解决了很久没解决的问题
回复 支持 反对

使用道具 举报

6

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
294
金钱
294
注册时间
2013-9-9
在线时间
92 小时
发表于 2019-4-23 10:55:03 | 显示全部楼层
多谢分享
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2019-3-26
在线时间
1 小时
发表于 2019-5-13 14:48:15 | 显示全部楼层
为什么打不开下载界面
回复 支持 反对

使用道具 举报

2

主题

42

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
222
金钱
222
注册时间
2013-10-10
在线时间
1 小时
发表于 2019-5-13 18:09:46 | 显示全部楼层
本帖最后由 光联 于 2019-5-13 18:12 编辑

楼主好伟大,正要做这个实验呢,弄一半了都,发送部分就抄你的了,谢谢了哈!是不是可以给其他接口也做一对收发的驱动呢?比如SPI之类的。
你以为我在工作,其实我在玩;你以为我在玩,其实我在工作。
回复 支持 反对

使用道具 举报

8

主题

155

帖子

0

精华

高级会员

Rank: 4

积分
748
金钱
748
注册时间
2011-11-12
在线时间
153 小时
发表于 2019-5-13 21:27:59 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

0

主题

125

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2728
金钱
2728
注册时间
2015-10-29
在线时间
428 小时
发表于 2019-5-14 19:16:27 | 显示全部楼层
谢谢楼主!
回复 支持 反对

使用道具 举报

11

主题

80

帖子

0

精华

高级会员

Rank: 4

积分
952
金钱
952
注册时间
2015-12-14
在线时间
107 小时
发表于 2019-7-8 15:14:41 | 显示全部楼层
回复 支持 反对

使用道具 举报

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
发表于 2019-7-8 20:28:48 | 显示全部楼层
多谢分享
回复 支持 反对

使用道具 举报

1

主题

42

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2018-4-24
在线时间
53 小时
发表于 2019-7-9 09:01:23 | 显示全部楼层
参考学习了,谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
255
金钱
255
注册时间
2019-4-28
在线时间
58 小时
发表于 2019-7-9 13:37:56 | 显示全部楼层

参考学习了,谢谢楼主分享
回复 支持 反对

使用道具 举报

1

主题

11

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2019-6-5
在线时间
8 小时
发表于 2019-7-11 12:54:29 | 显示全部楼层
不错   很好
回复 支持 反对

使用道具 举报

8

主题

163

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5484
金钱
5484
注册时间
2013-3-16
在线时间
646 小时
发表于 2019-7-11 17:25:25 | 显示全部楼层
我是来学习的
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2019-5-9
在线时间
18 小时
发表于 2019-7-15 15:37:54 | 显示全部楼层
多谢老哥
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2019-3-11
在线时间
11 小时
发表于 2019-7-16 09:13:43 | 显示全部楼层
第二个例子下载到开发板没反应,战舰板子
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2019-3-11
在线时间
11 小时
发表于 2019-7-16 09:14:05 | 显示全部楼层
怎么回事,急急
回复 支持 反对

使用道具 举报

11

主题

140

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1701
金钱
1701
注册时间
2019-5-2
在线时间
169 小时
发表于 2019-8-5 22:54:23 | 显示全部楼层
谢谢楼主
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2019-5-22
在线时间
47 小时
发表于 2019-9-12 11:38:39 | 显示全部楼层
感谢楼主分享,下载到板子上ok
回复 支持 反对

使用道具 举报

10

主题

293

帖子

0

精华

高级会员

Rank: 4

积分
623
金钱
623
注册时间
2019-6-3
在线时间
107 小时
发表于 2019-9-14 10:35:20 | 显示全部楼层
参考学习了,谢谢楼主分享
回复 支持 反对

使用道具 举报

8

主题

61

帖子

0

精华

高级会员

Rank: 4

积分
685
金钱
685
注册时间
2019-4-24
在线时间
43 小时
发表于 2019-9-25 11:05:55 | 显示全部楼层
很不错!!!
回复 支持 反对

使用道具 举报

3

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2019-4-29
在线时间
43 小时
发表于 2019-10-24 09:10:54 | 显示全部楼层
修改楼主的第二个程序BUG,可以看一下我的帖子http://www.openedv.com/forum.php ... d=301502&extra=
回复 支持 反对

使用道具 举报

6

主题

108

帖子

1

精华

高级会员

Rank: 4

积分
716
金钱
716
注册时间
2017-4-25
在线时间
203 小时
 楼主| 发表于 2019-10-24 17:19:19 | 显示全部楼层
本帖最后由 biglu 于 2019-10-24 17:25 编辑
球汤唯 发表于 2019-10-24 09:10
修改楼主的第二个程序BUG,可以看一下我的帖子http://www.openedv.com/forum.php?mod=viewthread&tid=30150 ...

对于标准库工程,的确没有测试过发送字节数大于串口缓冲最大值的情况 。我看了下,的确少了串口的DMA的Disable。现在习惯用HAL库了,例程里的HAL_UART_DMAStop(huart);
就相当于标准库的
USART_DMACmd(USART1, USART_DMAReq_Tx, DISABLE); //先停止串口1的DMA发送
DMA_Cmd(DMA1_Channel4, DISABLE ); //先停止DMA,暂停发送
回复 支持 反对

使用道具 举报

20

主题

138

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
346
金钱
346
注册时间
2012-10-11
在线时间
136 小时
发表于 2019-12-3 14:50:01 | 显示全部楼层
DMA USART!
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2019-12-3
在线时间
2 小时
发表于 2019-12-4 09:45:30 | 显示全部楼层
多谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2019-12-11
在线时间
3 小时
发表于 2020-1-21 21:35:26 | 显示全部楼层
太棒了,谢谢分享
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2019-12-12
在线时间
4 小时
发表于 2020-4-9 10:50:14 | 显示全部楼层
谢谢楼主分享!正好学习下!
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-7-25
在线时间
11 小时
发表于 2020-4-10 17:07:44 | 显示全部楼层
学习中。。。。。
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2020-4-2
在线时间
6 小时
发表于 2020-4-15 21:10:58 | 显示全部楼层
为什么DMA发不出数据?求解
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-10 22:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表