原子战舰stm32开发板--内部温度传感器实验--几点疑惑

2019-07-14 22:02发布

  本人在学习原子战舰STM32开发板实验--内部温度传感器实验时,有以下疑惑,还望各位可以给予帮助,谢谢。
(1)ADC初始化部分代码
  1. //初始化ADC
  2. //这里我们仅以规则通道为例
  3. //我们默认将开启通道0~3       
  4. void T_Adc_Init(void)  //ADC通道初始化
  5. {
  6.         //变量定义
  7.         ADC_InitTypeDef ADC_InitStructure;  //用于ADC初始化
复制代码(2)疑惑
a. 内部温度传感器连接的是ADCx_IN16,即和通道16相连,那么在ADC初始化函数中
  1. ADC_InitStructure.ADC_NbrOfChannel = 1;
复制代码这句话就应该配置为16,而不是1啊。原例程是不是错了?

b. 内部温度传感器并没有占用GPIOA啊,为什么依旧要开启GPIOA的时钟?
  1. //使能GPIOA时钟和ADC1时钟
  2. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_ADC1,ENABLE );
复制代码
c. 查阅一些别的资料,有的说要选中ADC1的通道16作为输入,设置采样时间17.1us ( Ncycle × tADC = 17.1靤 )。而原例程中没有这句话,是否是漏掉了?
  1. // ADC1 regular channel16 Temp Sensor configuration
  2. ADC_RegularChannelConfig(ADC1, ADC_Channel_16, 1, ADC_SampleTime_55Cycles5);
复制代码
感谢各位给予解答,谢谢!



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。