本人在学习原子战舰
STM32开发板实验--内部温度传感器实验时,有以下疑惑,还望各位可以给予帮助,谢谢。
(1)ADC初始化部分代码
- //初始化ADC
- //这里我们仅以规则通道为例
- //我们默认将开启通道0~3
- void T_Adc_Init(void) //ADC通道初始化
- {
- //变量定义
- ADC_InitTypeDef ADC_InitStructure; //用于ADC初始化
复制代码(2)疑惑
a. 内部温度传感器连接的是ADCx_IN16,即和通道16相连,那么在ADC初始化函数中
- ADC_InitStructure.ADC_NbrOfChannel = 1;
复制代码这句话就应该配置为16,而不是1啊。原例程是不是错了?
b. 内部温度传感器并没有占用GPIOA啊,为什么依旧要开启GPIOA的时钟?
- //使能GPIOA时钟和ADC1时钟
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_ADC1,ENABLE );
复制代码
c. 查阅一些别的资料,有的说要选中ADC1的通道16作为输入,设置采样时间17.1us ( Ncycle × tADC = 17.1靤 )。而原例程中没有这句话,是否是漏掉了?
- // ADC1 regular channel16 Temp Sensor configuration
- ADC_RegularChannelConfig(ADC1, ADC_Channel_16, 1, ADC_SampleTime_55Cycles5);
复制代码
感谢各位给予解答,谢谢!
一周热门 更多>