电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
请问MM32 AD读取问题,设定AD0通道动作读出来的数值不
已解决
73482
个问题
已帮助
5993
位优秀工程师
请问MM32 AD读取问题,设定AD0通道动作读出来的数值不
王栋春
2018-07-27
浏览量:1454
各位安安
想请教一个有关于AD问题
目前我使用MM32F031V8T这个MCU
我目前我会用到两组AD通道
AD0以及AD1动作
我发现在切换过程中疑似有问题
于是我就分开独立进行
发现设定AD0通道动作读出来的数值不变维持在某值
可是设定AD1却是可以行得通
是我设定上哪里有问题吗?
以下附程式码(初始化及读值)
不好意思 要请教大家多多帮忙了><
void ADC_Init(void){
RCC->AHBENR |= 1<<17; //使能GPIOA时钟
RCC->APB2ENR |= RCC_APB2ENR_ADC1EN; //使能ADC1时钟
GPIOA->CRL &= 0XFFFFFF00; //PA0 anolog输入
RCC->APB2RSTR |= RCC_APB2RSTR_ADC1RST; //ADC interface reset
RCC->APB2RSTR &= ~(RCC_APB2RSTR_ADC1RST); //ADC interface reset close
ADC1->ADCFG |= ADCFG_ADCPRE_8|ADCFG_ADCPRE_10;//osc 8M*2/1 = 16M16MHz/(7+1)/2 = 1Mhz =>period = 2us
ADC1->ADCR &= ~(ADCR_ADMD_PERIOD|ADCR_ADMD_CONTINUE|ADCR_ALIGN_LEFT);//单次非周期模式数据右对齐
ADC1->ADCR |= ADCR_ADMD_SINGLE;
ADC1->ADCFG |= ADCFG_ADEN; //ADC使能
ADC1->ADCR |= ADCR_ADST; //开始转换
}
uint16_t Func_GetADValue(void){
usADSTA = ADC1->ADSTA;
ADC1->ADCFG &= ~ADCFG_ADEN; //ADC Disable
ADC1->ADSTA = 0x00;
ADC1->ADCHS = ADCHS_CHEN0; //CH0=>ADCHS_CHEN0 ;CH0 =>ADCHS_CHEN1 (只改变这通道设定)
ADC1->ADCR |= ADCR_ADST; //开始转换
ADC1->ADCFG |= ADCFG_ADEN; //ADC enable
ADC1->ADCR |= ADCR_ADST;
do{
usADSTA = ADC1->ADCR;
usADSTA &= ADCR_ADST;
}while(usADSTA != 0);
usCH0Value = ADC1->ADDATA&0xfff;
return usCH0Value;
}
显示全部
其他
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答
数量:
2
huihui163
老兄开始搞单片机了,这个是国产的挺不错的额,用的寄存器操作,用库函数较多,选择好你的AD扫描模式
发布于
2018-07-31
举报
评论 0
0
0
发布
yhj416606438
可以参考mm32的例程
发布于
2018-08-02
举报
评论 0
0
0
发布
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
请问MM32 AD读取问题,设定AD0通道动作读出来的数值不
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: