打印
[STM32F1]

ADC采样问题

[复制链接]
582|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huanghuac|  楼主 | 2021-12-7 23:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//AD初始化
void AD_int(void)
{
        u8 value,i;
        u16 ADC_TDR_tmp;
        
        ADC2->CSR = 10; //AIN10通道选择        
        //select 4MHz clock based on 16MHz fMaster (div4), single mode
        ADC2->CR1 = 0x20;

        ADC2->CR2 = 0x08;//数据右对齐
        ADC2->TDRH=0x24;//AIN13 AIN10禁止施密特触发        
        ADC2->CR1 |= 0X01;//使能ADC
        
        value=30;
        while(value--); //等待ADC稳定                  

        ADC2->CSR &= 0x7f;//清EOC标志
        ADC2->CR1 |= 0x01;//启动AD
        
        i=0;
        do{
                if(ADC2->CSR&0x80)//转换结束
                        {               
                                DIin=ADC2->DRH*256+ADC2->DRL;//电流偏置代码获取
                                ADC2->CR1 |= 0x01;//启动AD
                                i++;
                        }               
         }while(i<20);//第20次采集作为电流真实偏置代码处理
               
        ADC2->CSR |= 13; //AIN13通道选择        
        ADChan=0;
        ADC2->CSR &= 0x7f;//清EOC标志
        ADC2->CR1 |= 0x01;//启动AD
}

电流偏置代码ADC的高八位为什么要乘以256?为什么ADC的数值设置成30,来达到稳定?

使用特权

评论回复
沙发
chuxh| | 2021-12-7 23:34 | 只看该作者
30不是ADC设置,是系统延时,等待adc使能完成

使用特权

评论回复
板凳
zwll| | 2021-12-7 23:36 | 只看该作者
12位ADC为8位+4位=4096 ,8位=256,4位=16,256*16=4096

使用特权

评论回复
地板
ousj| | 2021-12-7 23:38 | 只看该作者

DIin=ADC2->DRH*256+ADC2->DRL;
这个ADC是10位的,不是12位。为什么高位乘以256,低位不变

使用特权

评论回复
5
heweibig| | 2021-12-7 23:42 | 只看该作者
ADC2->DRH保存了高2位
ADC2->DRL保存了低8位

ADC2->DRH*256相当于把高2位左移8位也可以写成ADC2->DRH<<8

使用特权

评论回复
6
zhenykun| | 2021-12-7 23:43 | 只看该作者

高位乘以256确实有点烧脑,高低位拼接用位移也许更直观。

使用特权

评论回复
7
zhuhuis| | 2021-12-7 23:46 | 只看该作者
这个转换工具哪里找的?

使用特权

评论回复
8
songqian17| | 2021-12-7 23:48 | 只看该作者
这种写法的确有点别扭,个人觉得使用移位更直接,并且还不用乘法运算

使用特权

评论回复
9
zwll| | 2021-12-7 23:50 | 只看该作者
ADC采样为什么要左移或者右移,不是很懂

使用特权

评论回复
10
huanghuac|  楼主 | 2021-12-7 23:53 | 只看该作者
哦,那我就知道怎么回事了,多谢大家

使用特权

评论回复
11
foxsbig| | 2021-12-8 15:20 | 只看该作者
寄存器?

使用特权

评论回复
12
guanjiaer| | 2022-1-7 13:22 | 只看该作者
楼主的理解有点偏了

使用特权

评论回复
13
tpgf| | 2022-1-7 13:23 | 只看该作者
adc直接移位就可以

使用特权

评论回复
14
xiaoqizi| | 2022-1-7 13:26 | 只看该作者
高位和低位的关系啊

使用特权

评论回复
15
木木guainv| | 2022-1-7 13:27 | 只看该作者
256就是往左移动八位

使用特权

评论回复
16
heimaojingzhang| | 2022-1-7 13:30 | 只看该作者
30说的是延时时间

使用特权

评论回复
17
keaibukelian| | 2022-1-7 13:41 | 只看该作者
还是好好看看寄存器说明吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

772

主题

8473

帖子

6

粉丝