uint16_t ADC_Value=0; uint16_t dong_get_adc(){ //开启ADC1 HAL_ADC_Start(&hadc1); //等待ADC转换完成,超时为100ms HAL_ADC_PollForConversion(&hadc1,100); //判断ADC是否转换成功 if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1),HAL_ADC_STATE_REG_EOC)){ //读取值 return HAL_ADC_Ge...
ADC通道采集数据的两种方式: 1)ADC轮询采集数据直接放到数组中; 2)采用中断方式,ADC采集完成进入中断,中断关闭ADC采集,取数据之后再打开ADC采集。 以下按第一种方式实现: 二、ADC多通道配置 1)配置通道及参数 如果要控制轮询采样通道,设置Sequencer参数,Rank1,2,3即为采样通道顺序。 2)配置DMA 3)配置引脚 ...
多通道ADC采集的时候,DMA是会按照通道配置的顺序采集及排列数据。 比如通道顺序是A1 A2,那么对应的DMA缓存区的数据即 A1 A2 A1 A2... #include<stdio.h>unsignedinttemp[100] = {0}, i;unsignedlongad1 =0, ad2 =0;intfputc(intch, FILE* file) {returnHAL_UART_Transmit(&huart1, (uint8_t*)&c...
然后调用MX_ADC1_Init()函数对ADC1的基本参数、通道和通道参数进行了配置,并调用了HAL_ADC_Init()使用配置的参数初始化了ADC1 在初始化函数HAL_ADC_Init()中又调用了HAL_ADC_MspInit()函数,在该函数中使能了ADC1/GPIOA的时钟,对ADC1_IN5/6/7的输入引脚做了复用设置,然后对ADC1的DMA参数配置并进行了初始...
ADC多通道采集(阻塞模式) 1、时钟源配置 2、配置RCC时钟(选择第三个选项 Crystal/Ceramic Resonator 晶体/陶瓷谐振器 ) 3、配置一个LED灯,在程序编写中让它闪烁代表程序没有死机。 4、设置调试模式,我们选择SW 5、设置串口,因为我们的程序采集到了adc的数值之后会发送到串口调试助手上,证明ADC采集是否成功。选择...
Enabled 开启扫描模式。如果是多通道 AD 转换使用 ENABLE。 Right alignment 转换结果数据右对齐,一般我们选择右对齐模式。 Left alignment 转换结果数据左对齐。 Data Alignment: Scan Conversion Mode: Continuous Conversion Mode: DiscontinuousConvMode: ADC_Regular_ConversionMode: ...
ADC_Settings: Data Alignment: Right alignment 转换结果数据右对齐,一般我们选择右对齐模式。 Left alignment 转换结果数据左对齐。 Scan Conversion Mode: Disabled 禁止扫描模式。如果是单通道 AD 转换使用 DISABLE。 Enabled 开启扫描模式。如果是多通道 AD 转换使用 ENABLE。
ADC_Settings: Data Alignment: Right alignment 转换结果数据右对齐,一般我们选择右对齐模式。 Left alignment 转换结果数据左对齐。 Scan Conversion Mode: Disabled 禁止扫描模式。如果是单通道 AD 转换使用 DISABLE。 Enabled 开启扫描模式。如果是多通道 AD 转换使用 ENABLE。 Continuous Conversion Mode: Disabled 单...
ADC多通道: 只进行一次ADC转换:配置为“单次转换模式”,扫描模式使能。ADC的多个通道,按照配置的顺序依次转换一次后,就停止转换。等待再次使能后才会重新转换 进行连续ADC转换:配置为“连续转换模式”,扫描模式使能。ADC的多个通道,按照配置的顺序依次转换一次后,接着进行下一次转换,不断连续。
一、ADC简介 ADC(Analog-to-Digital Converter),即模拟-数字转换器,可以将连续变化的模拟信号转换为离散的数字信号,进而使用数字电路进行处理,称之为数字信号处理。 STM32f103 系列有 3 个 ADC,精度为 12 位,每个 ADC 最多有 16 个外部通道。其中 ADC1 和 ADC2 都有 16 个外部通道,ADC3 根据 CPU 引脚的不...