配置adc的时候为什么要设置dam

&对于STM32,在使用ADC的时候需要配置几个参数。
(1)&第一个参数是ADC_Mode,这里设置为独立模式:
ADC_InitStructure.ADC_Mode = ADC_Mode_I
在这个模式下,双ADC不能同步,每个ADC接口独立工作。所以如果不需要ADC同步或者只是用了一个ADC的时候,就应该设成独立模式了。
(2)&第二个参数是ADC_ScanConvMode,这里设置为DISABLE。
ADC_InitStructure.ADC_ScanConvMode = DISABLE;
如果只是用了一个通道的话,DISABLE就可以了,如果使用了多个通道的话,则必须将其设置为ENABLE。
(3)&第三个参数是ADC_ContinuousConvMode,这里设置为ENABLE,即连续转换。如果设置为DISABLE,则是单次转换。两者的区别在于连续转换直到所有的数据转换完成后才停止转换,而单次转换则只转换一次数据就停止,要再次触发转换才可以。所以如果需要一次性采集1024个数据或者更多,则采用连续转换。
(4)&第四个参数是ADC_ExternalTrigConv,即选择外部触发模式。这里只讲三种:
1、第一种是最简单的软件触发,参数为ADC_ExternalTrigConv_None。设置好后还要记得调用库函数:
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
这样触发才会启动。
2、第二种是定时器通道输出触发。共有这几种:ADC_ExternalTrigConv_T1_CC1、ADC_ExternalTrigConv_T1_CC2、ADC_ExternalTrigConv_T2_CC2、
ADC_ExternalTrigConv_T3_T以及ADC_ExternalTrigConv_T4_CC4。定时器输出触发比较麻烦,还需要设置相应的定时器。以
ADC_ExternalTrigConv_T2_CC2触发为例设置相应的定时器:
void TIM2_Configuration(void)
TIM_TimeBaseInitTypeDef&&&TIM_TimeBaseS
TIM_OCInitTypeDef&&&&&&&&&TIM_OCInitS
TIM_TimeBaseStructure.TIM_Prescaler = 4;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_Period = 0XFF;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_E
TIM_OCInitStructure.TIM_Pulse = 0X7F;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_L
TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_S&&&&&&&&
&//配置CC2的属性。若CC3作为ADC的触发源,则应改为TIM_OC3Init(TIM2,
&TIM_OCInitStructure);
TIM_OC2Init(TIM2, &TIM_OCInitStructure);
TIM_Cmd(TIM2, ENABLE);
TIM_CtrlPWMOutputs(TIM2, ENABLE);
这样设置之后就可以用定时器2的输出触发了,至于触发的周期,设置TIM2的时间即可。这里不再赘述。
3、第三种是外部引脚触发,对于规则通道,选择EXTI线11和TIM8_TRGO作为外部触发事件;而注入通道组则选择EXTI线15和TIM8_CC4作为外部触发事件。
(5)&第五个参数是ADC_DataAlign,这里设置为ADC_DataAlign_Right右对齐方式。建议采用右对齐方式,因为这样处理数据会比较方便。当然如果要从高位开始传输数据,那么采用左对齐优势就明显了。
(6)&第六个参数是ADC_NbrOfChannel,顾名思义:通道的数量。要是到多个通道采集数据的话就得设置一下这个参数。此外在规则通道组的配置函数中也许将各个通道的顺序定义一下,如:
&&&&&&ADC_RegularChannelConfig(ADC1,ADC_Channel_13,1,ADC_SampleTime_13Cycles5);
&&&&&&ADC_RegularChannelConfig(ADC1,ADC_Channel_14,2,ADC_SampleTime_13Cycles5);
&&&&&&&多通道数据传输时有一点还要注意:若一个数组为ADC_ValueTab[4],且设置了两个通道:通道1和通道2,则转换结束后,ADC_ValueTab[0]和ADC_ValueTab[2]存储的是通道1的数据,而ADC_ValueTab[1]和ADC_ValueTab[3]存储的是通道2的数据。如果数组容量大则依次类推。
&&&&&&&补充一点:在使用DMA传输数据的时候,需要设置外设地址和存储器地址,外设地址当然就是ADC的地址了,而存储器的地址如果使用8位数据的话,存储器必须定义为8位缓冲区;如果使用16位数据格式的话,存储器则为16位缓冲器,不可定义为32位或更多,否则,数据将出错。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:4281次
排名:千里之外
转载:12篇 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
DAM-3000用户向导
下载积分:2000
内容提示:DAM-3000用户向导
文档格式:PDF|
浏览次数:2|
上传日期: 22:12:47|
文档星级:
该用户还上传了这些文档
DAM-3000用户向导
官方公共微信玩狮子,你们最怕什么ADC_傲之追猎者吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:56,127贴子:
玩狮子,你们最怕什么ADC
我白银都知道一场比赛只...
尼玛,一看到前排兰盾加...
我就怕中炸了,我去了一...
现在玩游戏的辅助加我。...
票牛教你如何买到热门、便宜、真实的演出门票!
怕ADC做什么?
什么都不怕
没怕过。。
...炸得你痛不欲生
...炸得你痛不欲生
...炸得你痛不欲生
楼主是个好英雄
打不过。。
CGWANG原画培训 「零基础全额退费保障」,原画名企委托培训,高薪工作不是梦
壮哉我大狮子
各种秒杀怎么会怕啊-_-||
怕带反伤的肉
怕对方abc哭
怕对方abc哭
怕对方adc哭
不怕ADC…LS说到…有次残血往家跑踩了一串蘑菇…然后死了…
ADC真的要哭……还不知道怎么回事,他就死掉了……
剑姬,,……等等吧,如果Q正好遇到格挡或被致盲……呵呵,还打个毛线
我怕对面ADC被我用狮子吓得不敢出门了!
点亮12星座印记,
贴吧热议榜
使用签名档&&
保存至快速回贴

我要回帖

更多关于 求专业adc符文配置 的文章

 

随机推荐