<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STM32 的內部溫度傳感器

STM32 的內部溫度傳感器

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

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

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

STM32內部溫度傳感器使用的步驟了,如下:

1)設置ADC,開(kāi)啟內部溫度傳感器。

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

2)讀取通道16的AD值,計算結果。

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

  1. //初始化ADC
  2. //這里我們僅以規則通道為例
  3. //我們默認將開(kāi)啟通道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);//將外設 ADC1 的全部寄存器重設為缺省值
  10. ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;//ADC工作模式:ADC1和ADC2工作在獨立模式
  11. ADC_InitStructure.ADC_ScanConvMode=DISABLE;//模數轉換工作在單通道模式
  12. ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;//模數轉換工作在單次轉換模式
  13. ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//轉換由軟件而不是外部觸發(fā)啟動(dòng)
  14. ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;//ADC數據右對齊
  15. ADC_InitStructure.ADC_NbrOfChannel=1;//順序進(jìn)行規則轉換的ADC通道的數目
  16. ADC_Init(ADC1,&ADC_InitStructure);//根據ADC_InitStruct中指定的參數初始化外設ADCx的寄存器
  17. ADC_TempSensorVrefintCmd(ENABLE);//開(kāi)啟內部溫度傳感器
  18. ADC_Cmd(ADC1,ENABLE);//使能指定的ADC1
  19. ADC_ResetCalibration(ADC1);//重置指定的ADC1的復位寄存器
  20. while(ADC_GetResetCalibrationStatus(ADC1));//獲取ADC1重置校準寄存器的狀態(tài),設置狀態(tài)則等待
  21. ADC_StartCalibration(ADC1);//
  22. while(ADC_GetCalibrationStatus(ADC1));//獲取指定ADC1的校準程序,設置狀態(tài)則等待
  23. }
  24. u16 T_Get_Adc(u8 ch)
  25. {
  26. ADC_RegularChannelConfig(ADC1,ch,1,ADC_SampleTime_239Cycles5);//ADC1,ADC通道3,第一個(gè)轉換,采樣時(shí)間為239.5周期
  27. ADC_SoftwareStartConvCmd(ADC1,ENABLE);//使能指定的ADC1的軟件轉換啟動(dòng)功能
  28. while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//等待轉換結束
  29. returnADC_GetConversionValue(ADC1);//返回最近一次ADC1規則組的轉換結果
  30. }
  31. //得到ADC采樣內部溫度傳感器的值
  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的轉換值
  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內部溫度傳感

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>