OpenEdv-开源电子网

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

STM32 + 串口DMA接收和发送实例 (修改版分享)

[复制链接]

3

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2019-4-29
在线时间
43 小时
发表于 2019-10-23 20:56:54 | 显示全部楼层 |阅读模式
最近在弄STM32 + 串口DMA接收和发送,在论坛上参考这位原创作者(http://www.openedv.com/forum.php ... d=284146&extra=)的实例后,利用串口DMA接收+空闲中断,然后串口DMA再发送接收的数据,一开始测试预期的功能好像达到了,但是在测试串口发送的字节大于设定DMA接收的字节时,会出现BUG(通过仿真发现再重新开启DMA接收时,接收数组的第一个字节已被写入)。后面查看了数据手册,发现在重新开启DMA接收时,需要停止通道工作才能重新写入数据传输数量,也就是停止DMA_Cmd(x,DISABLE)DMA的同时,也要停止串口2的DMA发送或接收USART_DMACmd(x,x,DISABLE)原创作者的是没有停止的,我后面修改后加上就好了。(但是做DMA发送时加或不加都没有bug,原子哥的也只是使能了串口的DMA发送 )
修改后:1,串口DMA接收到多少个字节,然后串口DMA再发送多少个字节(串口DMA已不会发送设定的字节数)
             2,串口DMA接收到超过设定DMA接收字节数,然后串口DMA再稳定发送设定的字节

原创作者出现的BUG

原创作者出现的BUG

修改后

修改后

代码优化

代码优化

修改后_UART1_DMA接收和发送.rar (289.59 KB, 下载次数: 1427)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

685

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3447
金钱
3447
注册时间
2017-7-4
在线时间
869 小时
发表于 2020-10-25 20:37:42 | 显示全部楼层
参考这个帖子,串口DMA收发,高速不翻车。
http://www.openedv.com/forum.php ... d=317086&extra=
回复 支持 0 反对 1

使用道具 举报

7

主题

99

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
220
金钱
220
注册时间
2015-2-26
在线时间
35 小时
发表于 2019-10-24 08:38:17 | 显示全部楼层
多谢分享,收个下载
回复 支持 反对

使用道具 举报

7

主题

99

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
220
金钱
220
注册时间
2015-2-26
在线时间
35 小时
发表于 2019-10-24 08:38:57 | 显示全部楼层
多谢分享,学习下
汽车OBD

OBD 学习群 907183926
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2019-10-30
在线时间
1 小时
发表于 2019-11-4 17:19:45 | 显示全部楼层
多谢分享,学习下!
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2019-9-19
在线时间
40 小时
发表于 2019-11-4 17:43:41 | 显示全部楼层
请问一下博主,为什么下载不了呢?
回复 支持 反对

使用道具 举报

5

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
193
金钱
193
注册时间
2019-7-23
在线时间
22 小时
发表于 2019-12-26 10:29:12 | 显示全部楼层
请问楼主,超过DMA发送字节还能正常发送是怎么实现的,我的正常发送模式一旦超过就会进程直接死在里面。。。请问楼主是在哪里设置的
回复 支持 反对

使用道具 举报

1

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2016-7-8
在线时间
11 小时
发表于 2019-12-26 21:06:32 | 显示全部楼层
多谢分享,收个下载
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2019-4-7
在线时间
28 小时
发表于 2020-2-21 14:08:48 | 显示全部楼层
学习学习
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2019-4-7
在线时间
28 小时
发表于 2020-2-21 15:23:08 | 显示全部楼层
你好,为啥我移植到F103C8T6上不能用呀
回复 支持 反对

使用道具 举报

3

主题

23

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
267
金钱
267
注册时间
2019-8-5
在线时间
40 小时
发表于 2020-2-25 10:36:09 | 显示全部楼层
请问您串口2对应的DMA通道是多少?
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

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

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2020-5-4
在线时间
0 小时
发表于 2020-5-4 18:17:01 来自手机 | 显示全部楼层
您好,串口2的dma发送程序吗?
回复 支持 反对

使用道具 举报

0

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
220
金钱
220
注册时间
2020-4-7
在线时间
19 小时
发表于 2020-5-5 10:58:16 | 显示全部楼层
谢谢分享,学习一下
回复 支持 反对

使用道具 举报

0

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2018-3-20
在线时间
74 小时
发表于 2020-5-16 13:33:34 | 显示全部楼层
多谢大佬分享,学习学习
回复 支持 反对

使用道具 举报

15

主题

513

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3171
金钱
3171
注册时间
2016-1-14
在线时间
369 小时
发表于 2020-5-17 10:07:20 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

0

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2020-7-29
在线时间
40 小时
发表于 2020-9-2 17:25:28 | 显示全部楼层
多谢分享,学习下
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2018-8-11
在线时间
2 小时
发表于 2020-9-3 08:20:36 | 显示全部楼层
多谢分享
回复 支持 反对

使用道具 举报

3

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
426
金钱
426
注册时间
2017-1-6
在线时间
66 小时
发表于 2020-10-25 18:32:01 | 显示全部楼层
MARK MARK MARK MARK
回复 支持 反对

使用道具 举报

2

主题

685

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3447
金钱
3447
注册时间
2017-7-4
在线时间
869 小时
发表于 2020-10-25 20:39:02 | 显示全部楼层
回复 支持 反对

使用道具 举报

9

主题

54

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1174
金钱
1174
注册时间
2020-7-27
在线时间
193 小时
发表于 2021-11-18 17:09:09 | 显示全部楼层
mark & learn
回复 支持 反对

使用道具 举报

14

主题

821

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2070
金钱
2070
注册时间
2021-7-17
在线时间
647 小时
发表于 2021-11-18 17:53:23 | 显示全部楼层
收下了
回复 支持 反对

使用道具 举报

13

主题

643

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2432
金钱
2432
注册时间
2019-12-28
在线时间
527 小时
发表于 2022-1-8 10:19:49 | 显示全部楼层

多谢分享
回复 支持 反对

使用道具 举报

34

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
496
金钱
496
注册时间
2018-10-30
在线时间
160 小时
发表于 2022-7-9 11:45:06 | 显示全部楼层
运行不了是什么问题
回复 支持 反对

使用道具 举报

34

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
496
金钱
496
注册时间
2018-10-30
在线时间
160 小时
发表于 2022-7-9 11:45:41 | 显示全部楼层
QFkw001 发表于 2020-2-21 15:23
你好,为啥我移植到F103C8T6上不能用呀

我也是的,运行不了
回复 支持 反对

使用道具 举报

2

主题

685

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3447
金钱
3447
注册时间
2017-7-4
在线时间
869 小时
发表于 2022-7-10 12:11:57 | 显示全部楼层
sr861126 发表于 2022-7-9 11:45
我也是的,运行不了


用这个吧,DMARX应该用循环模式,单次模式关闭/开启过程,数据又来 了,岂不是丢数据了: http://www.openedv.com/forum.php ... d=317086&extra=
回复 支持 反对

使用道具 举报

7

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1110
金钱
1110
注册时间
2019-5-6
在线时间
128 小时
发表于 2022-7-17 14:25:26 | 显示全部楼层
好东西
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 15:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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