stm32的ADC功能。读取的是模拟量么?转化为数字量输出?

比如读取电压3.3V,那么所谓读取的模拟量就是3.3V吧?输出数字量是什么意思呢?数字量是指1和0两个值么??... 比如读取电压3.3V,那么所谓读取的模拟量就是3.3V吧?输出数字量是什么意思呢?数字量是指1和0两个值么?? 展开
 我来答
ROVAST
2014-02-25 · TA获得超过126个赞
知道答主
回答量:50
采纳率:100%
帮助的人:47.1万
展开全部
数字量指的是0和1没错。0、1是二进制
你看手册,STM32的ADC是12位的精度,也就是数字量的范围是0至2^12(2的12次方,也就是12位二进制数),也就是0~4096(十进制)。
所以,采样的模拟量是0~3.3V 的模拟电压,对应的数字量是0~4096.。至于具体值对应关系,是等分的,3.3V被分为4096份,采样到的数字量就可以对应到模拟电压了。
jfluo0101
2014-02-25 · TA获得超过1415个赞
知道小有建树答主
回答量:225
采纳率:0%
帮助的人:274万
展开全部
是的,ADC器件的功能就是讲读取的模拟量转换成数字量,这个数字量是与模拟量对应的,否则转换的数字量就失去了意义。。他们之间的关系是:

ADC数字量 = (ADC输入电压范围)/ADC的位置 * 输入的模拟电压值

举一个例子吧:
ADC器件输入电压为0~5V,位数为10bit,那么数字量1024就表示5V。
追问
那么如果我想在读取模拟量之后定义这个模拟量5V是高电平,请问也需要用ADC功能么?比如定义5V对应标志位flag=1;那么应该用什么语句呢?
谢谢!
追答
如果你定义外接输入的模拟电压5V是高电平,就需要通过ADC来实现了,因为你需要通过ADC读取这个电压,然后再程序里面做操作。。

比如输入范围0~5V,12bit的ADC器件,读取到单片机里面,程序基本写法是:

int ADCvalue; //ADCvaule定位为ADC转换结果
int flag;
.....
.....
if(abs(ADCvalue - 5) <= 0.001)
{
flag =1

}
else
{
flag =0;

}
....
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式