STM8获取电压值
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?STM8獲取電壓值
STM8獲取電壓值(1)端口定義 static void ADC_POWER_Config() {/* Init GPIO for ADC1 */GPIO_Init(GPIOB, GPIO_PIN_2, GPIO_MODE_IN_FL_NO_IT);//可變電阻ADC1_DeInit();ADC1_Init(ADC1_CONVERSIONMODE_SINGLE, ADC1_CHANNEL_2, ADC1_PRESSEL_FCPU_D2, ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL0, ENABLE);ADC1_Cmd(ENABLE); }(2)獲取電壓值(這里采集五次取平均值) #define BATTERY_CHECK_COUNT_PER_COLLECT 5 //每次采集的次數 u16 Get_ADC_POWER_Value(void) {u16 nBattery_Check_Value = 0;u16 nNum = 0;for(nNum = 0; nNum < BATTERY_CHECK_COUNT_PER_COLLECT; nNum++)//采集BATTERY_CHECK_COUNT_PER_COLLECT次,累加采集的電量值{ADC1_StartConversion();//開始轉換nBattery_Check_Value += ADC1_GetConversionValue(); //累加讀取adc的轉換值 }nBattery_Check_Value = nBattery_Check_Value/(BATTERY_CHECK_COUNT_PER_COLLECT*10);//求出電量平均值return nBattery_Check_Value; }(3)main函數 void main(void) {ADC_POWER_Config();u16 nBattery_Check_Value2 = 0;nBattery_Check_Value2 = Get_ADC_POWER_Value(); //讀取電量printf("nBattery_Check_Value2 = %d\n",nBattery_Check_Value2); }?
總結
- 上一篇: STM8中GPIO的12种模式
- 下一篇: Socket简介及客户端服务器连接实例