完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在做一个表,我想用AD1和AD2同时测量2路电压值,当没时能AD2时,AD1测得的正弦波为正常波形,当时能了AD2时,两路测得的同一信号正弦波形峰峰值偏大了,直接导致测得的有效值偏大了,这个会是什么原因呢
|
|
相关推荐
2个回答
|
|
大家帮帮忙给我看一下,很奇怪的问题,我使用的双ADC模式,不知道设置有没有什么问题,程序如下,各位大侠帮我看一下啊!
/******************************************************************************* * 函数名: DMA_configuration 说明: DMA通道1初始化配置,用于ADC结果传输保存 *******************************************************************************/ void DMA_Configuration(void) { // DMA_ISR = 0x00000000; /*DMA中断状态寄存器,可通过设置IFCR对应位清除 |||||||+---GIF1 =0:通道1没产生TE、HT或TC事件全局中断标志 |||||||+---TCIF1=0:通道1没产生传输完成中断标志 |||||||+---HTIF1=0:通道1没产生半传输中断标志 |||||||+---TEIF1=0:通道1没产生传输错误中断标志 ||||||+----通道2中断标志组 ||||++-----通道3中断标志组 ||||++-----通道4中断标志组 |||+-------通道5中断标志组 ||+--------通道6中断标志组 ||+--------通道7中断标志组 +----------保留*/ // DMA_IFCR= 0x00000000; /*DMA中断标志清除寄存器,可由软件设置或清除 |||||||+---CGIF1 =1:清除通道1的TE、HT或TC事件全局中断标志 |||||||+---CTCIF1=1:清除通道1的传输完成中断标志 |||||||+---CHTIF1=1:清除通道1的半传输中断标志 |||||||+---CTEIF1=1:清除通道1的传输错误中断标志 ||||||+----清除通道2中断标志组 ||||++-----清除通道3中断标志组 ||||++-----清除通道4中断标志组 |||+-------清除通道5中断标志组 ||+--------清除通道6中断标志组 ||+--------清除通道7中断标志组 +----------保留*/ DMA_CCR1= 0x00003A80;/*0011 1010 1000 0000 |||| |||| |||| |||| |||+--EN = 0:通道关闭,1:通道开启 |||| |||| |||| |||| ||+---TCIE=0:不允许传输完成中断 |||| |||| |||| |||| |+----HTIE=0:禁止半传输中断 |||| |||| |||| |||| +-----TEIE=0:禁止传输错误中断 |||| |||| |||| |||+-------DIR =0:数据传输方向(从外设读) |||| |||| |||| ||+--------CIRC=0:不执行循环操作 |||| |||| |||| |+---------PINC=0:不执行外设地址增量模式 |||| |||| |||| +----------MINC=1:执行存储器地址增量模式 |||| |||| ||++------------PSIZE=10:32位外设数据宽度 |||| |||| ++--------------MSIZE=10:32位存储器数据宽度 |||| ||++-----------------PL=11:最高通道优先级 |||| |+-------------------MEM2MEM=0:非存储器到存储器模式 ++++-------+--------------------保留*/ DMA_CNDTR1=40;//0x00001000; //DMA通道1传输数量寄存器(4096*2 Bytes) DMA_CPAR1 = (uint32_t)ADC1_DR_ADDR; //DMA通道1的外设数据寄存器基地址 DMA_CMAR1 =(uint32_t)&(Scan_Buffer[0]);//DMA通道1的源或目标的存储器地址 // DMA_CCR1 |= 0x00000001; // EN = 1:DMA通道1开启 } /******************************************************************************* * 函数名 : ADC_configuration 说明: ADC初始化,采样完成后自动DMA到缓冲区 *******************************************************************************/ void ADC_Configuration(void) { ADC2_CR1 =0x00000000; ADC1_CR1 =0x00060000;/* ||||||++---AWDCH[4:0]:模拟看门狗通道选择位 ||||||+----=000:不允许EOC、AWD、JEOC中断 |||||+-----Nib8_SCAN=1:使用扫描模式 ||||++-----保持复位值 |||+-------DUALMOD=6:规则同步模式 ||+--------规则通道和注入通道禁用模拟看门狗 ++---------保留*/ ADC2_CR2 =0x001E0000; 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[4:0]规则序列中的第13个转换通道编号(0-17)。 ||||||+----SQ14[4:0]规则序列中的第14个转换通道编号(0-17)。 ||||+------SQ15[4:0]规则序列中的第15个转换通道编号(0-17)。 |||+-------SQ16[4:0]规则序列中的第16个转换通道编号(0-17)。 ||+--------L[3:0]:规则转换序列通道长度:00001个转换)...1111(16个转换) ++---------保留*/ ADC2_SQR3 =0x00000001; //---------------------- ADC1_SQR3 =0x00000000;/*ADC规则序列寄存器 3 ||||||++---SQ1=00000:转换序列中的第1个转换通道的编号(0) +++++++----SQ2-6=00000:转换序列中第2-6个转换通道编号(5Bits*5) +----------保留*/ ADC2_SMPR2=0x00000001; ADC1_SMPR2=0x00000001;/*ADC采样时间寄存器 1 |||||||+---SMP01=000(3Bits):使通道00的采样时间 1.5T ||||||+----SMP02=000(3Bits):使通道01的采样时间 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校准 } /******************************************************************************* * 函数名: Timer_configuration 说明: 系统定时器初始化配置 *******************************************************************************/ void Timer_Configuration(void) { //---------------TIM1用于定时触发ADC采样------------------- // Set_Base(Item_Index[2]); TIM1_PSC = 4; TIM1_ARR = 7199; TIM1_CCR1=(7199+1)/2; TIM1_CR1 = 0x0094;/*0000 0000 1001 0100 |||| |||| |||| |||+---CEN=0,禁止计数器 |||| |||| |||| ||+----UDIS=0,允许UEV更新 |||| |||| |||| |+-----URS=1:只有计数器溢出产生中断或DMA请求 |||| |||| |||| +------OPM=0:在发生更新事件时,计数器不停止 |||| |||| |||+--------DIR=1,计数器向下计数 |||| |||| |++---------CMS=00,选择边沿对齐模式 |||| |||| +-----------ARPE=1,TIM1_ARR寄存器被装入缓冲器 |||| ||++-------------CKD=00,CK_INT分频比为1 ++++-++---------------保留*/ TIM1_RCR = 0x0000;/*0000 0000 0000 0001 |||| |||| ++++ ++++---在边沿对齐模式下,PWM周期的数目+1 ++++-++++-------------保留*/ TIM1_CCER =0x0001;/*0000 0000 0000 0001 |||| |||| |||| |||+---CC1E=1,OC1信号输出到对应的输出引脚 |||| |||| |||| ||+----CC1P=0,OC1高电平有效 |||| |||| |||| |+-----CC1NE=0,OC1N禁止输出 |||| |||| |||| +------CC1NP=0,OC1N高电平有效 ++++-++++-++++--------CC2、CC3、CC4配置为复位值*/ TIM1_CCMR1=0x0078;/*0000 0000 0111 1100 |||| |||| |||| ||++---CC1S=00,CC1通道被配置为输出 |||| |||| |||| |+-----OC1FE=1,允输出比较1 快速使能? |||| |||| |||| +------OC1PE=1,输出比较1预装载使能 |||| |||| |+++--------0C1M=111,PWM模式2 |||| |||| +-----------OC1CE=0,OC1REF 不受ETRF输入的影响 ++++-++++-------------CC2通道配置为复位值*/ TIM1_BDTR =0x8000;/*1000 0000 0000 0000 |+++-++++-++++-++++---其它位保持不变 +---------------------MOE=0,主输出使能*/ TIM1_DIER =0x4200;/*0100 0011 0000 0000 DMA和中断使能寄存器 | || +----CC1IE=0:不允许捕获/比较1中断 | |+-------------UDE=1:允许更新的DMA请求 | +--------------CC1DE=1:允许捕获/比较1的DMA请求 +--------------------TDE=1:允许触发DMA请求*/ TIM1_CR1 |=0x0001;//CEN=1,使能TIMER1计数器 } |
|
|
|
回复【楼主位】zxz_chy:
-------------------------------- stm32的多通道ADC采集,倒是还真没这么玩过. 你试试单开ADC2呢?是什么结果?会不会是参考电压有问题? |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1792 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1626 浏览 1 评论
1094 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
732 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1682 浏览 2 评论
1943浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
740浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
577浏览 3评论
600浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
562浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 12:34 , Processed in 0.784243 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号