微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 原子战舰stm32开发板--内部温度传感器实验--几点疑惑

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

时间:10-02 整理:3721RD 点击:
  本人在学习原子战舰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);

复制代码


感谢各位给予解答,谢谢!

小编 最后解决了吗

没有呢,你可以解答吗

a),这个是指ADC通道的数量,你是单通道所以选择1,如果你填16就是表示有16路输入通道
b)?
c)

小编可以下载一个库函数手册,一个多参数函数,不会只设定一个内容的,而且如果用库函数方式编程,有手册在手,方便很多

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top