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

[复制链接]
5806|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的框图
香水城 发表于 2011-12-12 15:08 | 显示全部楼层
ADC1和ADC2本来就是连在一起的。
雨辰073 发表于 2011-12-12 16:50 | 显示全部楼层
当然是可以的
fliger 发表于 2011-12-12 17:46 | 显示全部楼层
不知道。
dfsa 发表于 2011-12-12 18:06 | 显示全部楼层
本来就是一起的
yybj 发表于 2011-12-12 18:12 | 显示全部楼层
forrest11 发表于 2011-12-12 20:39 | 显示全部楼层
当然可以了,不管内部什么结构,你的这个功能要求都是要满足的。
无冕之王 发表于 2011-12-12 22:36 | 显示全部楼层
必须可以
 楼主| 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校准
}
 楼主| zxz_chy 发表于 2011-12-13 14:17 | 显示全部楼层
:'(没人回我吗
雨辰073 发表于 2011-12-16 10:22 | 显示全部楼层
 楼主| zxz_chy 发表于 2011-12-20 10:19 | 显示全部楼层
没人回我算了,心也冷掉了。。。
香水城 发表于 2011-12-20 14:56 | 显示全部楼层
谢谢各位,已经可以双通道采样了,但是好像AD1和AD2互相有干扰,是不是我哪里没设置好呀
/*******************************************************************************
* 函数名    : ADC_configuration  说 ...
zxz_chy 发表于 2011-12-13 11:13


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

还有,请在校准之后再做初始化。
 楼主| zxz_chy 发表于 2011-12-20 19:56 | 显示全部楼层
硬件上应该没问题的,因为我就用ADC1的时候扫描采样的数据是准确的,同时用ADC1和ADC2的时候就是不对,有效值偏高了大概2%左右
 楼主| zxz_chy 发表于 2011-12-21 11:32 | 显示全部楼层
校准后在初始化?但是我看了好多程序包括st的例程里面不都是先初始化了再校准的吗 16# 香水城
woyaochenggong 发表于 2011-12-21 18:39 | 显示全部楼层
标准后的初始化,是什么意思?
selina1983 发表于 2012-5-28 16:24 | 显示全部楼层
mark.............
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

148

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部