日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM8L之ADC

發布時間:2025/4/16 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM8L之ADC 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
STM8L之ADC



?


/*******************************************************************************
*名 ? ?稱: Hal_Comm_GetBatADC
*功 ? ?能: 獲取電池電量信息
*入口參數: 無
*出口參數: 電量AD值
*說 ? ?明:?
*******************************************************************************/
unsigned int Hal_Comm_GetBatADC(void)
{
unsigned int Result = 0, value_adc = 0;
unsigned char index = 0;

? GPIO_Init(VOL_ADC_PORT,VOL_ADC_PIN,GPIO_Mode_In_FL_No_IT);//VOL_ADC
? ADC1->CR1 |= 0x01;//使能AD
? ADC1->CR3 &= ~0x1F;// ?選擇采樣時間 384 周期 ?通道清空?
? ADC1->CR3 |= 0x00; ?// channel 0 is selected?
? ADC1->SQR[0] = ADC1->SQR[1] = ADC1->SQR[2] = ADC1->SQR[3] = 0x00;
? ADC1->SQR[3] = 0x01;// 選擇通道0掃描 ?
? ADC1->SR &= 0x00;// conversion not complete?
? ADC1->SR = 0; ? ?// conversion 標識清空
? ADC1->CR1 |= 0x03;//使能AD并開始轉換?
??
? while(!(ADC1->SR & 0x01)); //waitloop ? bit0: 1 complete ? 0 not complete?
?
? for(index = 0; index < 10; index++)
? {
? ? ADC1->SR = 0; ?// conversion 標識清空?
? ? ADC1->CR1 |= 0x03;//使能AD ?開始轉換
? ? while(!(ADC1->SR & 0x01));//waitloop ?conversion ?complete?
? ? Result = ADC1->DRH; ? ? //總共計算16bit的值,但ADC為12 bit 長度
? ? Result <<= 8; ? ? ? ? ? //ADC1->DRH為高8位,
? ? Result += ADC1->DRL; ? ?//ADC1->DRL為低8位
? ? value_adc += Result;
if(index != 0)value_adc = value_adc/2; ?//獲取多次數據,計算平均值 ?
? ? index++;
? }


? ADC1->CR1 &= 0xFE;//關閉AD?
? ADC1->CR3 &= ~0x1F;//選擇通道?
? ADC1->CR3 |= 0x11;?


return value_adc;
}




我們一般在設計原理圖的時候會把ADC的輸入電壓范圍設定在:0~3.3v,如果設置ADC為12位的,那么12位滿量程對應的就是3.3V,12位滿量程對應的數字值是:2^12。數值0對應的就是0V。如果轉換后的ADC數值為X,X對應的模擬電壓為Y,那么會有這么一個等式成立:2^12/3.3=X/Y,=>Y=(3.3*X)/2^12


在我們的智能鎖項目中,滿量程Vref為3.31V,總電壓(M6V)/測試電壓(VOL_ADC) = 3
4096/3.31 = value_adc/Va


Va = value_adc * 3.31 / 4096


總電壓 = Va * 3


即程序中的vin = value_adc * 3.31 * 3 / 4096?



總結

以上是生活随笔為你收集整理的STM8L之ADC的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。