OpenEdv-开源电子网

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

关于STM32的DMA传输问题

[复制链接]

12

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2016-5-18
在线时间
34 小时
发表于 2018-3-11 16:03:39 | 显示全部楼层 |阅读模式
5金钱
目前我们用STM32做了一款光谱仪,但是目前出现了一个问题:当光谱仪长时间不用后再次打开光谱仪进行光谱采集时发现采集上来的全是0,进入debug调试后发现程序先执行数据发送,之后才进行DMA数据传输,按照这样的逻辑下来那么下一次的数据应该是上一次的采集数据,但是之后不管采集多少次得到的全部都是0,必须重启一次后才能正常的执行先DMA传输再进行数据发送。这个问题困扰我很长时间了,请问这个有可能是哪里出了问题?还有就是,我让光谱仪的底层电路中先开机,然后我断掉了STM32的电源,总开关供电正常,然后我再次接通STM32的电源进行光谱采集,发现能够重复上述情况,请问断电后的STM32再接通电源有什么影响吗?请大神帮忙解答一下!!!!

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-3-12 00:44:06 | 显示全部楼层
回复

使用道具 举报

82

主题

589

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1255
金钱
1255
注册时间
2017-11-18
在线时间
296 小时
发表于 2018-3-12 08:16:44 | 显示全部楼层
可以发一下代码片段过来大家分析一下吗(DMA相关的代码过程)
没有脑袋
回复

使用道具 举报

10

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
319
金钱
319
注册时间
2017-1-20
在线时间
51 小时
发表于 2018-3-12 10:41:15 | 显示全部楼层
可能需要再详细描述下;你用的是串口DMA还是其他总线的DMA?发送和接收都是DMA控制的么?
再有就是打开的时候是不是没有清楚DMA的状态呢?
回复

使用道具 举报

62

主题

903

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3566
金钱
3566
注册时间
2016-1-8
在线时间
544 小时
发表于 2018-3-12 11:55:20 | 显示全部楼层
估计是你DMA  CNDTR寄存器  指针指向 你没有用好,还有DMA 配置要循环读取方式
回复

使用道具 举报

12

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2016-5-18
在线时间
34 小时
 楼主| 发表于 2018-3-12 16:22:26 | 显示全部楼层
DMA中断.jpg TIM1CH3.jpg TIM1CH1.jpg DMAconfig.jpg 这是DMA配置与中断触发的配置,请大家帮忙看看!!!谢谢了!!!!
TIM1CH4.jpg
回复

使用道具 举报

12

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2016-5-18
在线时间
34 小时
 楼主| 发表于 2018-3-12 16:22:52 | 显示全部楼层
美丽的时光机器 发表于 2018-3-12 08:16
可以发一下代码片段过来大家分析一下吗(DMA相关的代码过程)

在下面,请帮忙看看谢谢了!!
回复

使用道具 举报

12

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2016-5-18
在线时间
34 小时
 楼主| 发表于 2018-3-12 16:23:09 | 显示全部楼层
Sun_Fly 发表于 2018-3-12 11:55
估计是你DMA  CNDTR寄存器  指针指向 你没有用好,还有DMA 配置要循环读取方式

在下面,请帮忙看看谢谢了!!
回复

使用道具 举报

12

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2016-5-18
在线时间
34 小时
 楼主| 发表于 2018-3-12 16:23:26 | 显示全部楼层
tt朝花夕拾 发表于 2018-3-12 10:41
可能需要再详细描述下;你用的是串口DMA还是其他总线的DMA?发送和接收都是DMA控制的么?
再有就是打开的 ...

在下面,请帮忙看看谢谢了!!
回复

使用道具 举报

12

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2016-5-18
在线时间
34 小时
 楼主| 发表于 2018-3-12 16:26:07 | 显示全部楼层
对了!!只要将STM32的NRST端接地重启后,先串口传输在DMA采集的现象就不存在了,就变回先DMA传输再进行串口采集的正常运行过程!
回复

使用道具 举报

12

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2016-5-18
在线时间
34 小时
 楼主| 发表于 2018-3-13 11:12:32 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-20 20:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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