打印

请问各位ADC1和ADC2可以同时用同一个事件触发吗

[复制链接]
4698|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zxz_chy|  楼主 | 2011-12-12 11:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问各位ADC1和ADC2可以同时用同一个事件触发吗,例如TIM1的CC1事件启动转换?
沙发
zxz_chy|  楼主 | 2011-12-12 11:19 | 只看该作者
:)

使用特权

评论回复
板凳
zxz_chy|  楼主 | 2011-12-12 11:50 | 只看该作者
没人

使用特权

评论回复
地板
Ryanhsiung| | 2011-12-12 12:54 | 只看该作者
不知道,你看一下ADC的框图

使用特权

评论回复
5
香水城| | 2011-12-12 15:08 | 只看该作者
ADC1和ADC2本来就是连在一起的。

使用特权

评论回复
6
雨辰073| | 2011-12-12 16:50 | 只看该作者
当然是可以的

使用特权

评论回复
7
fliger| | 2011-12-12 17:46 | 只看该作者
不知道。

使用特权

评论回复
8
dfsa| | 2011-12-12 18:06 | 只看该作者
本来就是一起的

使用特权

评论回复
9
yybj| | 2011-12-12 18:12 | 只看该作者
可以

使用特权

评论回复
10
forrest11| | 2011-12-12 20:39 | 只看该作者
当然可以了,不管内部什么结构,你的这个功能要求都是要满足的。

使用特权

评论回复
11
无冕之王| | 2011-12-12 22:36 | 只看该作者
必须可以

使用特权

评论回复
12
zxz_chy|  楼主 | 2011-12-13 11:13 | 只看该作者
谢谢各位,已经可以双通道采样了,但是好像AD1和AD2互相有干扰,是不是我哪里没设置好呀
/*******************************************************************************
* 函数名    : ADC_configuration  说明  : ADC初始化,采样完成后自动DMA到缓冲区
*******************************************************************************/
void ADC_Configuration(void)
{
  ADC2_CR1 =0x00060100;
  ADC1_CR1 =0x00060100;/*
              ||||||++---AWDCH[4:0]:模拟看门狗通道选择位
              ||||||+----=000:不允许EOC、AWD、JEOC中断
              |||||+-----Nib8_SCAN=1:使用扫描模式
              ||||++-----保持复位值
              |||+-------DUALMOD=6:规则同步模式
              ||+--------规则通道和注入通道禁用模拟看门狗
              ++---------保留*/
  ADC2_CR2 =0x00100000;
  ADC1_CR2 =0x00100100;/*
              |||||||+---ADON=0:关闭ADC转换/校准,=1:开启ADC并启动转换
              |||||||+---CONT=0:1:连续转换模式
              |||||||+---CAL=0,=1:A/D校开始准,校准后该位将被硬件清除
              |||||||+---RSTCAL=0,=1:初始化校准寄存器,校准后该位将被硬件清除
              ||||||+----保留
              |||||+-----ALIGN=0 & DMA=1:数据右对齐和使用DMA模式
              ||||+------注入通道设置,这里未使用,设置为默认值
              |||+-------=0000:规则通道使用定时器1的CC1事件启动转换,=1110:SWSTART
              ||+--------=1:使用外部触发信号启动转换
              ++---------保留*/
  ADC2_SQR1=0x00000000;
  ADC1_SQR1=0x00000000;/*ADC规则序列寄存器 1
              ||++++++---SQ13-16=00000:转换序列中第13-16个转换通道编号(5Bits*4)
              ++---------保留*/
  ADC2_SQR3 =0x00000001; //----------------------
  ADC1_SQR3 =0x00000000;/*ADC规则序列寄存器 3
               ||||||++---SQ1=00000:转换序列中的第1个转换通道的编号(0)
               +++++++----SQ2-6=00000:转换序列中第2-6个转换通道编号(5Bits*5)
               +----------保留*/
  ADC2_SMPR2=0x00000000;
  ADC1_SMPR2=0x00000000;/*ADC采样时间寄存器 1   
               |||||||+---SMP01=000(3Bits):使通道00的采样时间 1.5T   
               ||||||+----SMP02=000(3Bits):使通道04的采样时间 1.5T
               |+++++++---SMP11-17=000(3Bits*7):通道11-17的采样时间 1.5T
               ++---------保留*/
  ADC1_CR2 |=0x00000001;
  ADC2_CR2 |=0x00000001;       //ADON=1:开启ADC1、ADC2
  ADC1_CR2 |=0x00000008;
  while(ADC1_CR2 & 0x00000008);//初始化ADC1校准寄存器
  ADC2_CR2 |=0x00000008;
  while(ADC2_CR2 & 0x00000008);//初始化ADC2校准寄存器
  ADC1_CR2 |=0x00000004;
  while(ADC1_CR2 & 0x00000004);//ADC1校准
  ADC2_CR2 |=0x00000004;
  while(ADC2_CR2 & 0x00000004);//ADC2校准
}

使用特权

评论回复
13
zxz_chy|  楼主 | 2011-12-13 14:17 | 只看该作者
:'(没人回我吗

使用特权

评论回复
14
雨辰073| | 2011-12-16 10:22 | 只看该作者
:L

使用特权

评论回复
15
zxz_chy|  楼主 | 2011-12-20 10:19 | 只看该作者
没人回我算了,心也冷掉了。。。

使用特权

评论回复
16
香水城| | 2011-12-20 14:56 | 只看该作者
谢谢各位,已经可以双通道采样了,但是好像AD1和AD2互相有干扰,是不是我哪里没设置好呀
/*******************************************************************************
* 函数名    : ADC_configuration  说 ...
zxz_chy 发表于 2011-12-13 11:13


怎么干扰?看看硬件上有没有什么问题。

还有,请在校准之后再做初始化。

使用特权

评论回复
17
zxz_chy|  楼主 | 2011-12-20 19:56 | 只看该作者
硬件上应该没问题的,因为我就用ADC1的时候扫描采样的数据是准确的,同时用ADC1和ADC2的时候就是不对,有效值偏高了大概2%左右

使用特权

评论回复
18
zxz_chy|  楼主 | 2011-12-21 11:32 | 只看该作者
校准后在初始化?但是我看了好多程序包括st的例程里面不都是先初始化了再校准的吗 16# 香水城

使用特权

评论回复
19
woyaochenggong| | 2011-12-21 18:39 | 只看该作者
标准后的初始化,是什么意思?

使用特权

评论回复
20
selina1983| | 2012-5-28 16:24 | 只看该作者
mark.............

使用特权

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

本版积分规则

13

主题

148

帖子

2

粉丝