在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32 的內(nèi)部溫度傳感器

            STM32 的內(nèi)部溫度傳感器

            作者: 時(shí)間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
            STM32有一個(gè)內(nèi)部的溫度傳感器,可以用來測量CPU及周圍的溫度(TA)。該溫度傳感器在內(nèi)部和ADCx_IN16輸入通道相連接,此通道把傳感器輸出的電壓轉(zhuǎn)換成數(shù)字值。溫度傳感器模擬輸入推薦采樣時(shí)間是17.1μs。STM32的內(nèi)部溫度傳感器支持的溫度范圍為:-40~125度。精度比較差,為±1.5℃左右。

            器的使用很簡單,只要設(shè)置一下內(nèi)部ADC,并激活其內(nèi)部通道就差不多了。

            本文引用地址:http://www.biyoush.com/article/201611/317046.htm

            STM32內(nèi)部溫度傳感器使用的步驟了,如下:

            1)設(shè)置ADC,開啟內(nèi)部溫度傳感器。

            ADC_TempSensorVrefintCmd(ENABLE);//開啟內(nèi)部溫度傳感器功能:

            2)讀取通道16的AD值,計(jì)算結(jié)果。

            在設(shè)置完之后,我們就可以讀取溫度傳感器的電壓值了

            1. //初始化ADC
            2. //這里我們僅以規(guī)則通道為例
            3. //我們默認(rèn)將開啟通道0~3
            4. voidT_Adc_Init(void)//ADC通道初始化
            5. {
            6. ADC_InitTypeDef ADC_InitStructure;
            7. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ADC1,ENABLE);//使能GPIOA,ADC1通道時(shí)鐘
            8. RCC_ADCCLKConfig(RCC_PCLK2_Div6);//分頻因子6時(shí)鐘為72M/6=12MHz
            9. ADC_DeInit(ADC1);//將外設(shè) ADC1 的全部寄存器重設(shè)為缺省值
            10. ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;//ADC工作模式:ADC1和ADC2工作在獨(dú)立模式
            11. ADC_InitStructure.ADC_ScanConvMode=DISABLE;//模數(shù)轉(zhuǎn)換工作在單通道模式
            12. ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;//模數(shù)轉(zhuǎn)換工作在單次轉(zhuǎn)換模式
            13. ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//轉(zhuǎn)換由軟件而不是外部觸發(fā)啟動(dòng)
            14. ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;//ADC數(shù)據(jù)右對(duì)齊
            15. ADC_InitStructure.ADC_NbrOfChannel=1;//順序進(jìn)行規(guī)則轉(zhuǎn)換的ADC通道的數(shù)目
            16. ADC_Init(ADC1,&ADC_InitStructure);//根據(jù)ADC_InitStruct中指定的參數(shù)初始化外設(shè)ADCx的寄存器
            17. ADC_TempSensorVrefintCmd(ENABLE);//開啟內(nèi)部溫度傳感器
            18. ADC_Cmd(ADC1,ENABLE);//使能指定的ADC1
            19. ADC_ResetCalibration(ADC1);//重置指定的ADC1的復(fù)位寄存器
            20. while(ADC_GetResetCalibrationStatus(ADC1));//獲取ADC1重置校準(zhǔn)寄存器的狀態(tài),設(shè)置狀態(tài)則等待
            21. ADC_StartCalibration(ADC1);//
            22. while(ADC_GetCalibrationStatus(ADC1));//獲取指定ADC1的校準(zhǔn)程序,設(shè)置狀態(tài)則等待
            23. }
            24. u16 T_Get_Adc(u8 ch)
            25. {
            26. ADC_RegularChannelConfig(ADC1,ch,1,ADC_SampleTime_239Cycles5);//ADC1,ADC通道3,第一個(gè)轉(zhuǎn)換,采樣時(shí)間為239.5周期
            27. ADC_SoftwareStartConvCmd(ADC1,ENABLE);//使能指定的ADC1的軟件轉(zhuǎn)換啟動(dòng)功能
            28. while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//等待轉(zhuǎn)換結(jié)束
            29. returnADC_GetConversionValue(ADC1);//返回最近一次ADC1規(guī)則組的轉(zhuǎn)換結(jié)果
            30. }
            31. //得到ADC采樣內(nèi)部溫度傳感器的值
            32. //取10次,然后平均
            33. u16 T_Get_Temp(void)
            34. {
            35. u16 temp_val=0;
            36. u8 t;
            37. for(t=0;t<10;t++)
            38. {
            39. temp_val+=T_Get_Adc(ADC_Channel_16);//TampSensor
            40. delay_ms(5);
            41. }
            42. returntemp_val/10;
            43. }
            44. //獲取通道ch的轉(zhuǎn)換值
            45. //取times次,然后平均
            46. u16 T_Get_Adc_Average(u8 ch,u8 times)
            47. {
            48. u32 temp_val=0;
            49. u8 t;
            50. for(t=0;t
            51. {
            52. temp_val+=T_Get_Adc(ch);
            53. delay_ms(5);
            54. }
            55. returntemp_val/times;
            56. }



            關(guān)鍵詞: STM32內(nèi)部溫度傳感

            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉