新手问一个关于ADC左对齐右对齐的问题
时间:10-02
整理:3721RD
点击:
新人,不明白ADC的左对齐右对齐是怎么对齐的
假如12位ADC转换,个人理解如下:
左对齐
ADCH__|__11111111__|__1111_______|__ADCL
右对齐
ADCH__|_______1111__|__11111111__|__ADCL
那么假如读到的数据是B'001111111111'
左对齐是这样:
ADCH__|__00111111__|__1111_______|__ADCL
还是这样
ADCH__|__11111111__|__1100_______|__ADCL
不明白。
假如12位ADC转换,个人理解如下:
左对齐
ADCH__|__11111111__|__1111_______|__ADCL
右对齐
ADCH__|_______1111__|__11111111__|__ADCL
那么假如读到的数据是B'001111111111'
左对齐是这样:
ADCH__|__00111111__|__1111_______|__ADCL
还是这样
ADCH__|__11111111__|__1100_______|__ADCL
不明白。
stm32的ADC一般都是12bit的,两个字节是有16位,所以有4位是无效数据,
左对齐:0bxxxx xxxx xxxx 0000(x代表有效数据)
右对齐:0b0000 xxxx xxxx xxxx (x代表有效数据)
所以设置为左对齐模式,在数据处理时需要小心
左对齐的意思就是,从左边开始计算有效数据,右对齐就是右边开始计算.你的左对齐就是这样
ADCH__|__11111111__|__1100