ADC IO写错,分压电压检测可以了
This commit is contained in:
parent
cc26414609
commit
79fe76276c
|
@ -100,6 +100,7 @@
|
|||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.flags.1577723329" name="Linker flags (-Xlinker [option])" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.flags" useByScannerDiscovery="false" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="--print-memory-usage"/>
|
||||
</option>
|
||||
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.printfloat.1191876922" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.printfloat" useByScannerDiscovery="false" value="true" valueType="boolean"/>
|
||||
<inputType id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.input.1859223768" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
|
|
|
@ -163,13 +163,18 @@ int main(void)
|
|||
// R32_PIN_CONFIG2
|
||||
|
||||
// GPIOA_ResetBits(GPIO_Pin_1);
|
||||
GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeIN_Floating);
|
||||
// GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeIN_Floating);
|
||||
|
||||
DelayMs(1000 * 5);
|
||||
DelayMs(1000 * 3);
|
||||
|
||||
BSP_ADC_Init();
|
||||
|
||||
PRINT("%s\n", VER_LIB);
|
||||
// while (1)
|
||||
// {
|
||||
// DelayMs(1000);
|
||||
// }
|
||||
|
||||
CH59x_BLEInit();
|
||||
HAL_Init();
|
||||
GAPRole_PeripheralInit();
|
||||
|
|
|
@ -20,6 +20,8 @@ void BSP_ADC_Init(void)
|
|||
{
|
||||
uint8_t i;
|
||||
|
||||
#if 0
|
||||
// ±10C,没啥参考价值
|
||||
/* 温度采样并输出 */
|
||||
PRINT("\n1.Temperature sampling...\n");
|
||||
ADC_InterTSSampInit();
|
||||
|
@ -33,7 +35,9 @@ void BSP_ADC_Init(void)
|
|||
C25 = (*((PUINT32)ROM_CFG_TMP_25C));
|
||||
PRINT("%d %d %d \n", adc_to_temperature_celsius(adcBuff[i]), adcBuff[i], C25);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if 1
|
||||
// VBAT
|
||||
uint32_t CountBat = 0;
|
||||
ADC_InterBATSampInit();
|
||||
|
@ -55,21 +59,27 @@ void BSP_ADC_Init(void)
|
|||
printf("min_number = %d, max_number = %d\n", min_number, max_number);
|
||||
CountBat = (CountBat - min_number - max_number) / 18; // 删除最小与最大值
|
||||
printf("AverageCountBat = %d\n", CountBat);
|
||||
#endif
|
||||
|
||||
/* 单通道采样:选择adc通道3做采样,对应 PA13引脚, 带数据校准功能 */
|
||||
GPIOA_ModeCfg(GPIO_Pin_13, GPIO_ModeIN_Floating);
|
||||
GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeIN_Floating);
|
||||
DelayMs(300);
|
||||
|
||||
// 6dB(2倍) (ADC/4096+0.5)*Vref 1.5*Vref 0.525V~1.575V 0.6V~1.5V
|
||||
ADC_ExtSingleChSampInit(SampleFreq_3_2, ADC_PGA_2);
|
||||
ADC_ExtSingleChSampInit(SampleFreq_3_2, ADC_PGA_0);
|
||||
|
||||
RoughCalib_Value = ADC_DataCalib_Rough(); // 用于计算ADC内部偏差,记录到全局变量 RoughCalib_Value中
|
||||
PRINT("RoughCalib_Value =%d \n", RoughCalib_Value);
|
||||
|
||||
printf("PA13:::::\n");
|
||||
ADC_ChannelCfg(3);
|
||||
DelayMs(300);
|
||||
|
||||
printf("PA14:::::\n");
|
||||
ADC_ChannelCfg(4);
|
||||
|
||||
for (i = 0; i < 20; i++)
|
||||
{
|
||||
adcBuff[i] = ADC_ExcutSingleConver() + RoughCalib_Value; // 连续采样20次
|
||||
// DelayMs(5);
|
||||
}
|
||||
printf("original: ");
|
||||
for (i = 0; i < 20; i++)
|
||||
|
@ -92,6 +102,7 @@ void BSP_ADC_Init(void)
|
|||
printf("min=%d, max=%d, diff=%d\n", min_number, max_number, (max_number - min_number));
|
||||
countadc = (countadc - min_number - max_number) / 18; // 删除最小与最大值
|
||||
printf("countaveradc = %d\n", countadc);
|
||||
voltage = (double)countadc / 2048 * 1.05;
|
||||
printf("voltage=%1.3lfv\n", voltage);
|
||||
voltage = (double)(countadc) / 2048 * 1.05;
|
||||
printf("voltage=%1.3lf V\n", voltage);
|
||||
PRINT("VIN: %1.3lf V\n", voltage * 2);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue