OpenEdv-开源电子网

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

求问,stm32adc序列通道寄存器如何理解?

[复制链接]

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2012-11-17
在线时间
0 小时
发表于 2012-11-17 14:45:51 | 显示全部楼层 |阅读模式
以前有人问过了,但是回复解释的不是很明白。看手册,也卡不懂。


假设我有8路ad输入,在pa0-pa7引脚,连续采样。怎样配置adc的SQR寄存器呢?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2012-11-17 16:05:08 | 显示全部楼层
看不完全手册,ADC部分。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2012-11-17
在线时间
0 小时
 楼主| 发表于 2012-11-17 17:20:52 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
看了,就是看不明白才到这里问的
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2012-11-17 22:51:12 | 显示全部楼层
电话我
回复 支持 反对

使用道具 举报

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2012-11-17
在线时间
0 小时
 楼主| 发表于 2012-11-21 12:18:12 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
懂了,就是次序编号,谢谢原子哥。
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2012-10-27
在线时间
0 小时
发表于 2013-3-10 18:13:02 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
原子哥,看了好久ADC了,扫描模式怎么都搞不定,我不知道什么时候适合取数据?
这个不能用~
u16 Get_Scan_Adc(void)   
{
ADC1->SQR3&=0XFFF00000;    //清零通道0,1,2,3
ADC1->SQR3|=0XFFF20C41;   //通道 0,1,2,3 对应 0->1->2->3        
ADC1->CR2|=1<<22;       //启动规则转换通道 
while(!(ADC1->SR&1<<1));//等待转换结束      
return ADC1->DR; //返回adc值
}
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-3-10 18:15:31 | 显示全部楼层
回复【6楼】lileinetnet:
---------------------------------
一次读一个啊....
//获得ADC值
//ch:通道值 0~16
//返回值:转换结果
u16 Get_Adc(u8 ch)   
{
//设置转换序列     
ADC1->SQR3&=0XFFFFFFE0;//规则序列1 通道ch
ADC1->SQR3|=ch;        
ADC1->CR2|=1<<22;       //启动规则转换通道 
while(!(ADC1->SR&1<<1));//等待转换结束      
return ADC1->DR; //返回adc值
}
Get_Adc(0);
Get_Adc(1);
Get_Adc(2);
Get_Adc(3);
....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2012-10-27
在线时间
0 小时
发表于 2013-3-10 18:17:24 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
谢谢原子哥,这个我想到了,不过我想用扫描模式应该怎么配置呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-3-10 19:38:38 | 显示全部楼层
那我也没配置过。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
208
金钱
208
注册时间
2015-3-14
在线时间
33 小时
发表于 2016-8-29 19:36:39 | 显示全部楼层
回复 支持 反对

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-8-29 20:13:56 | 显示全部楼层
lileinetnet 发表于 2013-3-10 18:17
回复【7楼】正点原子:
---------------------------------
谢谢原子哥,这个我想到了,不过我想用扫描模式 ...

扫描模式需要使用中断或DMA配合,
因为DR就一个,扫描到下一个通道之前要赶紧把数据取出来,否则就没了

如果目标通道数<=4,推荐 injected conversion, 数据存放在各自的(ADC_JDRx) (x= 1..4)
坚决不用寄存器,拒绝重复造轮子。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-30 13:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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