打印

GD32 103 ADC使用中碰到的问题

[复制链接]
6754|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1.我是直接从STM32移植过来的,常规组并发+插入组并发,常规组使用DMA传输,
2.使用时发现ADC1的DMA数据低位是错的,感觉是篡位了。高位和ADC3都是正确的,插入组数据也是正确的
3.ADC的时钟默认2分频,DMA数据和插入组数据都是正确的;(设置4分频和6分频都会出现数据错)
4.将插入使能关掉。DMA数据是正确的

不知道哪位有遇到这样的问题


沙发
kekeke| | 2014-7-16 14:53 | 只看该作者

使用特权

评论回复
板凳
kekeke| | 2014-7-16 14:53 | 只看该作者

使用特权

评论回复
地板
kekeke| | 2014-7-16 14:54 | 只看该作者

使用特权

评论回复
5
kekeke| | 2014-7-16 14:54 | 只看该作者
注意AD时钟频率的区别

使用特权

评论回复
6
fuqiang4343|  楼主 | 2014-7-16 14:56 | 只看该作者
呵呵,我是时钟设为小于14MHZ就出问题,2分频36MHZ反正正常了,不符合常理啊

使用特权

评论回复
7
kekeke| | 2014-7-16 15:02 | 只看该作者
你的CPU主时钟是多少呢,正常了就OK了哈哈

使用特权

评论回复
8
fuqiang4343|  楼主 | 2014-7-16 15:05 | 只看该作者
本帖最后由 fuqiang4343 于 2014-7-16 15:13 编辑

我主频是72MHZ,ST和GD资料都要求ADC时钟低于14MHz,我设置36MHz心里没谱,毕竟是要生产出产品的

我还有一个疑惑,GD资料上写GD与STM32片内Flash启动算法不同。我用Kile编译,“Add Flsh Promramming Algorithm"我选择GD或者是STM32实际测试并没有发现有什么区别;另外我用J-FLASH和第三方烧录器烧录后测试也没有发现异常

使用特权

评论回复
9
fuqiang4343|  楼主 | 2014-7-17 11:06 | 只看该作者
问题解决了,好奇葩,
1.先初始化ADC再初始化DMA就变正常了,
2.或者在常规组触发前加入ADC_DMACmd(ADC1, DISABLE);
                        ADC_DMACmd(ADC1, ENABLE);得出的数据也正常
甚至写入ADC_DMACmd(ADC2, DISABLE);
        ADC_DMACmd(ADC2, ENABLE); 也正常

使用特权

评论回复
10
fuqiang4343|  楼主 | 2014-7-17 11:10 | 只看该作者
本帖最后由 fuqiang4343 于 2014-7-17 14:07 编辑

另外测试时还发现两个问题
1.挨着ADC管脚的信号如果超过3.3V会影响到ADC的输入,示波器测量ADC管脚能看到窜进来的信号
2.我用定时器的捕获功能我用CC4管脚,其中CH4IE中断需要软件清零
上面两个问题STM32都有没出现过

使用特权

评论回复
11
ljmf5| | 2017-3-16 15:17 | 只看该作者
你好,请教一下,我是在用GD做ADC测试,我是使用ADC1的通道0(PA0)和通道8(PB0),结果PB0的结果会随着PA0变化,不知道是什么情况,

使用特权

评论回复
12
fuqiang4343|  楼主 | 2017-3-16 17:02 | 只看该作者
ljmf5 发表于 2017-3-16 15:17
你好,请教一下,我是在用GD做ADC测试,我是使用ADC1的通道0(PA0)和通道8(PB0),结果PB0的结果会随着PA ...

是不是采样时间和保持时间设置太短了

使用特权

评论回复
13
ljmf5| | 2017-3-16 19:57 | 只看该作者
fuqiang4343 发表于 2017-3-16 17:02
是不是采样时间和保持时间设置太短了

是使用了DMA的原因,不用DMA就可以了

使用特权

评论回复
14
vibra2016| | 2017-3-17 00:01 | 只看该作者
采用DMA的方式进行数据的采集,很不错

使用特权

评论回复
15
chuntian2016| | 2017-3-18 12:25 | 只看该作者
这个需要注意时钟的配置

使用特权

评论回复
16
zhangbo1985| | 2017-3-18 13:05 | 只看该作者
插入使能是干啥的?

使用特权

评论回复
17
tongbu2015| | 2017-3-18 16:28 | 只看该作者
这个还是找下相关的寄存器的及相关资料的学习下的吧

使用特权

评论回复
18
baimiaocun2015| | 2017-3-18 17:27 | 只看该作者
看来这个还是频率配置的问题的

使用特权

评论回复
19
smilingangel| | 2017-3-19 18:18 | 只看该作者
fuqiang4343 发表于 2014-7-17 11:06
问题解决了,好奇葩,
1.先初始化ADC再初始化DMA就变正常了,
2.或者在常规组触发前加入ADC_DMACmd(ADC1, D ...

这两个顺序的不能反的?

使用特权

评论回复
20
angerbird| | 2017-3-19 21:35 | 只看该作者
插入数组操作的是怎样的?没听说过的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:本人什么都会!就两样不会,这也不会那也不会。

5

主题

35

帖子

1

粉丝