char adcString1[10] = {0}; char adcString2[10] = {0}; // 触发ADC转换,使用DMA传输数据,设置源地址、目标地址、传输数量 HAL_ADC_Start_DMA(&hadc1, ADC_Value, 10); // 采样10个值存储在ADC_Value[10]数组中 while (1) { if (HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1, HAL_ADC_STA...
HAL_ADC_Start(&hadc1);//启动ADC转换,必须放在for循环中,否则只能采集第一个通道的ADC值; HAL_ADC_PollForConversion(&hadc1,100); //用于轮询转换,是一个阻塞函数,等待转换完成,参数100ms是阻塞时间 if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1),HAL_ADC_STATE_REG_EOC)) { //判断转换完成标志位...
ADC输入时钟ADC_CLK由APB2经过分频产生,最大值是14MHz,分频因子由RCC 时钟配置寄存器 RCC_CFGR的位15:14 ADCPRE[1:0]设置,可以是2/4/6/8分频,但没有1 分频。 我们知道APB2总线时钟为72M,而ADC最大工作频率为14M,所以一般设置分频因子为6,这样ADC的输入时钟ADC_CLK的频率为12M,周期为1/ADC_CLK。 ② ...
adct=0;HAL_ADC_PollForConversion(&hadc1,50);//等待转换完成,50为最大等待时间,单位为msif(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC)) { adcval[0] =HAL_ADC_GetValue(&hadc1);//获取AD值printf("ADC1 Reading : %d \r\n",adcval[0]);printf("PA1 True Volt...
HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC) HAL_ADC_STATE_REG_EOC表示转换完成标志位,转换数据可用。 在这里写了一个adc取平均值的函数。主要用到了 HAL_ADC_GetValue(&hadc1) 即读取ADC转换数据,数据为12位。查看数据手册可知,寄存器为16位存储转换数据,数据右对齐,则转换的...
一切准备就绪后, ADC 转换后的数据根据转换组的不同,规则组的数据放在 ADC_DR寄存器,注入组的数据放在 JDRx。 规则数据寄存器 ADC 规则组数据寄存器 ADC_DR 只有一个,是一个 32 位的寄存器,低 16 位在单 ADC时使用,高 16 位是在 ADC1 中双模式下保存 ADC2 转换的规则数据,双模式就是 ADC1 和...
void bsp_AdcPro(void) { static uint16_t buf[SAMP_COUNT]; static uint8_t write; uint32_t sum; uint8_t i; HAL_ADC_PollForConversion(&AdcHandle, 5); //等待转换完成,第二个参数表示超时时间,单位ms if(HAL_IS_BIT_SET(HAL_ADC_GetState(&AdcHandle), HAL_ADC_STATE_REG_EOC)) ...
HAL_ADC_Start(&hadc1); //开启 HAL_ADC_PollForConversion(&hadc1,50); //等待转换完成 if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC)) { ADC_ConvertedValue = HAL_ADC_GetValue(&hadc1); ADC_ConvertedValueLocal =(float) ADC_ConvertedValue/4096*3.3; // 读取转换...
void bsp_AdcPro(void) { static uint16_t buf[SAMP_COUNT]; static uint8_t write; uint32_t sum; uint8_t i; HAL_ADC_PollForConversion(&AdcHandle, 5); //等待转换完成,第二个参数表示超时时间,单位ms if(HAL_IS_BIT_SET(HAL_ADC_GetState(&AdcHandle), HAL_ADC_STATE_REG_EOC)) ...
2ADC输入通道 从ADCx_INT0-ADCx_INT15对应三个ADC的16个外部通道,进行模拟信号转换此外,还有两个内部通道:温度检测或者内部电压检测选择对应通道之后,便会选择对应GPIO引脚,相关的引脚定义和描述可在开发板的数据手册里找 3注入通道,规则通道 我们看到,在选择了ADC的相关通道引脚之后,在模拟至数字转换器中有两个通...