原子战舰stm32开发板--内部温度传感器实验--几点疑惑
时间:10-02
整理:3721RD
点击:
本人在学习原子战舰stm32开发板实验--内部温度传感器实验时,有以下疑惑,还望各位可以给予帮助,谢谢。
(1)ADC初始化部分代码
a. 内部温度传感器连接的是ADCx_IN16,即和通道16相连,那么在ADC初始化函数中
b. 内部温度传感器并没有占用GPIOA啊,为什么依旧要开启GPIOA的时钟?
c. 查阅一些别的资料,有的说要选中ADC1的通道16作为输入,设置采样时间17.1us ( Ncycle × tADC = 17.1靤 )。而原例程中没有这句话,是否是漏掉了?
感谢各位给予解答,谢谢!
(1)ADC初始化部分代码
- //初始化ADC
- //这里我们仅以规则通道为例
- //我们默认将开启通道0~3
- void T_Adc_Init(void) //ADC通道初始化
- {
- //变量定义
- ADC_InitTypeDef ADC_InitStructure; //用于ADC初始化
a. 内部温度传感器连接的是ADCx_IN16,即和通道16相连,那么在ADC初始化函数中
- ADC_InitStructure.ADC_NbrOfChannel = 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);
感谢各位给予解答,谢谢!
小编 最后解决了吗
没有呢,你可以解答吗
a),这个是指ADC通道的数量,你是单通道所以选择1,如果你填16就是表示有16路输入通道
b)?
c)
小编可以下载一个库函数手册,一个多参数函数,不会只设定一个内容的,而且如果用库函数方式编程,有手册在手,方便很多