日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

讀取STM32芯片溫度與當(dāng)前供電電壓

撞上電子 ? 2023-11-20 08:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在做低功耗產(chǎn)品的時(shí)候讀取芯片溫度和當(dāng)前電壓是十分重要的一件事情。通過當(dāng)前供電電壓可以知曉電池電量是否低于水平值實(shí)現(xiàn)電池缺電報(bào)警。讀取芯片溫度也很重要,可以在使用內(nèi)部振蕩器的時(shí)候通過校準(zhǔn)算法根據(jù)溫度變化來實(shí)現(xiàn)實(shí)時(shí)校準(zhǔn)芯片。如果不使用或盡量少使用外部元器件來實(shí)現(xiàn)這兩個(gè)功能是擺在我們面前一個(gè)很重要的事情,遺憾的是現(xiàn)在網(wǎng)上的資料非常混亂,基本上直接使用總有點(diǎn)那么別扭。如何讀取芯片電壓?當(dāng)然肯定是需要用ADC了。不過這個(gè)時(shí)候需要有一個(gè)參考電壓作為比對(duì),很多人提出在外面使用一組LDO實(shí)現(xiàn)參考電壓,那樣其實(shí)LDO本身也有一定能耗,在我們追求極致低消耗的時(shí)候也不適合。當(dāng)然很多人說了為什么不使用PVD來做,那么我來說說,PVD本身是做電壓曲線檢測(cè)的,如果你要求低于2.5V就報(bào)警,你會(huì)發(fā)現(xiàn)如果你啟動(dòng)電壓<2.5V的時(shí)候無法檢測(cè)出來。所以還是自己做。還好STM32L0單片機(jī)在內(nèi)部有一個(gè)核心電壓,并且有一個(gè)寄存器VREFINT_CAL值可以用作基準(zhǔn)參考從而計(jì)算出相當(dāng)比較精準(zhǔn)的電壓。經(jīng)過測(cè)量,誤差還是基本滿足電池供電檢測(cè)的要求。如何讀取芯片溫度?在STM32L0下,只要讀到當(dāng)前電壓,配合溫度寄存器,就可以取得當(dāng)前溫度了。當(dāng)前溫度誤差比較大,即使高精度采樣,為了節(jié)省運(yùn)算時(shí)間,誤差還是有3度的誤差,因此這個(gè)地方需要寬泛一些。

#include "stm32l0xx_ll_adc.h" //需要這個(gè)庫實(shí)現(xiàn)公式計(jì)算//初始化void init_adc1(void){ ADC_ChannelConfTypeDef sConfig;
hadc.Instance = ADC1; hadc.Init.OversamplingMode = DISABLE; hadc.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV1; hadc.Init.Resolution = ADC_RESOLUTION_12B;//ADC_RESOLUTION_12B; hadc.Init.SamplingTime = ADC_SAMPLETIME_160CYCLES_5; //160.5cycles如果低于39.5cycles溫度采樣精準(zhǔn)度不夠 hadc.Init.ScanConvMode = ADC_SCAN_DIRECTION_FORWARD; hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT; hadc.Init.ContinuousConvMode = DISABLE; hadc.Init.DiscontinuousConvMode = DISABLE; hadc.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; hadc.Init.ExternalTrigConv = ADC_SOFTWARE_START; hadc.Init.DMAContinuousRequests = DISABLE; hadc.Init.EOCSelection = ADC_EOC_SINGLE_CONV; hadc.Init.Overrun = ADC_OVR_DATA_PRESERVED; hadc.Init.LowPowerAutoWait = DISABLE; hadc.Init.LowPowerFrequencyMode = DISABLE; hadc.Init.LowPowerAutoPowerOff = DISABLE; if (HAL_ADC_Init(&hadc) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); }/**Configure for the selected ADC regular channel to be converted. */ sConfig.Channel = ADC_CHANNEL_VREFINT; //初始化VREFINT_CAL參考電壓 sConfig.Rank = ADC_RANK_CHANNEL_NUMBER; if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } sConfig.Channel = ADC_CHANNEL_TEMPSENSOR; //初始化芯片溫度傳感器 sConfig.Rank = ADC_RANK_CHANNEL_NUMBER; if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); }}//讀取adc1值uint16_t readchannel_adc1(uint32_t Channel){ ADC_ChannelConfTypeDef adcConf; uint16_t adcData = 0; /* wait the the Vrefint used by adc is set */ while (__HAL_PWR_GET_FLAG(PWR_FLAG_VREFINTRDY) == RESET) {};//啟動(dòng)CLK時(shí)鐘 __HAL_RCC_ADC1_CLK_ENABLE();
/*calibrate ADC if any calibraiton hardware*/ HAL_ADCEx_Calibration_Start(&hadc, ADC_SINGLE_ENDED );
/* Deselects all channels*/ adcConf.Channel = ADC_CHANNEL_MASK; adcConf.Rank = ADC_RANK_NONE; HAL_ADC_ConfigChannel( &hadc, &adcConf);
/* configure adc channel */ adcConf.Channel = Channel; adcConf.Rank = ADC_RANK_CHANNEL_NUMBER; HAL_ADC_ConfigChannel( &hadc, &adcConf);

/* Start the conversion process */ HAL_ADC_Start(&hadc);
/* Wait for the end of conversion */ HAL_ADC_PollForConversion( &hadc, HAL_MAX_DELAY );
/* Get the converted value of regular channel */adcData+=HAL_ADC_GetValue(&hadc);
__HAL_ADC_DISABLE(&hadc);
__HAL_RCC_ADC1_CLK_DISABLE();
return adcData;}//具體調(diào)用代碼void main(void){ init_adc1(); //完成初始化 uint16_tvdda_mV=__LL_ADC_CALC_VREFANALOG_VOLTAGE(readchannel_adc1(ADC_CHANNEL_VREFINT),LL_ADC_RESOLUTION_12B);//取得當(dāng)前VDDA的電壓,單位mV uint16_t temp_degress = __LL_ADC_CALC_TEMPERATURE(vdda_mV,readchannel_adc1(ADC_CHANNEL_TEMPSENSOR),LL_ADC_RESOLUTION_12B); //取得當(dāng)前的溫度,單位攝氏度}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    463

    文章

    54475

    瀏覽量

    469795
  • 電壓
    +關(guān)注

    關(guān)注

    45

    文章

    5794

    瀏覽量

    122425
  • STM32
    +關(guān)注

    關(guān)注

    2313

    文章

    11196

    瀏覽量

    374770
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    敏源傳感溫度芯片 賦能充電樁智能溫度監(jiān)控方案

    /50V X7R材質(zhì)電容,保障芯片穩(wěn)定供電;? 防護(hù)二極管:D6選用SS115F,開啟電壓0.7V、導(dǎo)通電流1A,防止大地異常電壓波動(dòng)損壞芯片
    發(fā)表于 04-29 11:32

    STA1052:多功能光盤讀取芯片的技術(shù)剖析

    STA1052:多功能光盤讀取芯片的技術(shù)剖析 在電子設(shè)備的海洋中,光盤讀取技術(shù)一直是重要的組成部分。今天,我們就來深入了解一款名為STA1052的芯片,它在光盤
    的頭像 發(fā)表于 04-16 14:05 ?231次閱讀

    深入解析NCT7290:多功能電壓溫度監(jiān)測(cè)芯片的強(qiáng)大魅力

    深入解析NCT7290:多功能電壓溫度監(jiān)測(cè)芯片的強(qiáng)大魅力 在電子設(shè)計(jì)領(lǐng)域,一款性能卓越的監(jiān)測(cè)芯片往往能為整個(gè)系統(tǒng)帶來質(zhì)的提升。NCT7290作為一款集多種功能于一身的
    的頭像 發(fā)表于 04-11 14:30 ?160次閱讀

    在昉·星光開發(fā)板上結(jié)合使用溫度傳感器控制風(fēng)扇轉(zhuǎn)速

    內(nèi),高電平保持的時(shí)長(zhǎng)比,從而控制周期內(nèi)的平均電壓: 在本次課程中,我們先從溫度傳感器讀取當(dāng)前溫度值,然后進(jìn)過一定的轉(zhuǎn)換,再設(shè)定PWM輸
    發(fā)表于 03-11 08:10

    XZ61N 檢測(cè)電壓在小溫度漂移的情況下保持極高的精度

    這系列芯片是使用 CMOS 技術(shù)開發(fā)的高精度、低功耗、小封裝電壓檢測(cè)芯片。檢測(cè)電壓在小溫度漂移的情況下保持極高的精度。輸出配置是N-chan
    發(fā)表于 02-04 10:40

    ADC芯片溫度計(jì)算出來的溫度有時(shí)錯(cuò)的離譜,為什么?

    以下是庫函數(shù)里關(guān)于溫度計(jì)算的要點(diǎn),芯片手冊(cè)里也是這樣描述的: 讀取ADC參考電壓1.5V時(shí)的溫度傳感器的測(cè)量
    發(fā)表于 01-22 06:39

    ESP32S3讀取NTC熱敏電阻阻值計(jì)算出當(dāng)前環(huán)境溫度

    本文介紹了熱敏電阻模塊的工作原理及應(yīng)用,通過ESP32開發(fā)板ADC獲取熱敏電阻的電壓推算出熱敏電阻的阻值后進(jìn)而推算出熱敏電阻周圍的溫度值。
    的頭像 發(fā)表于 01-05 17:16 ?872次閱讀
    ESP32S3<b class='flag-5'>讀取</b>NTC熱敏電阻阻值計(jì)算出<b class='flag-5'>當(dāng)前</b>環(huán)境<b class='flag-5'>溫度</b>

    CW32溫度傳感器的應(yīng)用

    ) Vref是當(dāng)前 ADC 模塊的參考電壓,取值為 1.5V 或 2.5V。 T0是 8 位的初始校準(zhǔn)溫度值,記錄在芯片的 FLASH 存儲(chǔ)器中,其地址是 0x00012609,單
    發(fā)表于 12-15 08:18

    150V耐壓GPS供電芯片ICH6203G#芯片

    供電芯片
    惠海小偉
    發(fā)布于 :2025年12月10日 11:22:25

    【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】+2、讀取芯片內(nèi)部溫度

    完成 3.讀取芯片溫度 輸入以下信息: 如果讓運(yùn)行:\'sudo apt update\'則運(yùn)行。 等待完成后,再次操作,讀取溫度
    發(fā)表于 11-20 21:09

    AD5628-1和ad5628-2是不同的供電電壓嗎?

    AD5628-1和ad5628-2是不同的供電電壓嗎?ad5628-2供電設(shè)計(jì)3V,設(shè)置內(nèi)部的基準(zhǔn),refout引腳上沒有電壓,更新寄存器芯片
    發(fā)表于 09-09 07:27

    如何通過測(cè)試電源來確認(rèn)它的供電電壓是否充足?

    電源模塊的供電電壓也就輸出電壓,輸出電壓的變化幅度越小,則說明供電的電源模塊越穩(wěn)定,而一款能穩(wěn)定輸出的電源模塊可以保障產(chǎn)品的安全性和穩(wěn)定性,
    的頭像 發(fā)表于 09-01 18:18 ?1392次閱讀
    如何通過測(cè)試電源來確認(rèn)它的<b class='flag-5'>供電</b><b class='flag-5'>電壓</b>是否充足?

    STM32驅(qū)動(dòng)ADS1256串口輸出-AD轉(zhuǎn)換

    文章介紹了如何使用STM32通過SPI接口初始化并驅(qū)動(dòng)ADS1256高精度AD轉(zhuǎn)換器,包括ADS1256的芯片特點(diǎn)、引腳說明、模塊配置、程序初始化以及實(shí)驗(yàn)中的接線和現(xiàn)象。在實(shí)驗(yàn)中,通過讀取各個(gè)通道的AD值并轉(zhuǎn)換為
    的頭像 發(fā)表于 07-01 14:59 ?2550次閱讀
    <b class='flag-5'>STM32</b>驅(qū)動(dòng)ADS1256串口輸出-AD轉(zhuǎn)換

    通過stm32控制AD9914遇到芯片問題

    控制程序,使用的usb5V供電,上電就很燙,這正常嗎?如果給芯片寫代碼,初始化時(shí)候,如果控制了里面的寄存器CFR3,就會(huì)把供電電壓拉低一半??刂破渌拇嫫鰿FR1或者CFR2與CFR4
    發(fā)表于 06-04 11:08

    零知開源——STM32F1驅(qū)動(dòng)MAX31865讀取三線PT100溫度傳感器

    本教程詳細(xì)介紹了如何使用零知標(biāo)準(zhǔn)板(STM32F103RBT6)通過MAX31865模塊讀取三線制PT100鉑電阻溫度,并通過I2C OLED實(shí)時(shí)顯示溫度值和電阻值。教程內(nèi)容包括硬件接
    的頭像 發(fā)表于 05-23 18:05 ?3402次閱讀
    零知開源——<b class='flag-5'>STM32</b>F1驅(qū)動(dòng)MAX31865<b class='flag-5'>讀取</b>三線PT100<b class='flag-5'>溫度</b>傳感器
    连山| 铜山县| 合山市| 比如县| 南召县| 江口县| 封开县| 罗平县| 渭南市| 寿宁县| 台前县| 信宜市| 龙岩市| 荃湾区| 磐安县| 商南县| 桂林市| 毕节市| 阿勒泰市| 元阳县| 开原市| 达州市| 武强县| 泽普县| 巴中市| 东明县| 长岭县| 望都县| 达州市| 黔东| 西林县| 教育| 蓬溪县| 华亭县| 蒙城县| 陕西省| 宜黄县| 德州市| 黑龙江省| 宁南县| 芷江|