STM32L073RZ进行两路AD电压信号采集(非DMA方式)
来源:互联网 发布:java乱码转换 编辑:程序博客网 时间:2024/05/14 04:26
使用STM32L073RZ调试两路AD电压信号采集,刚开始用DMA方式,发现开启DMA转换USB虚拟串口无法识别。现在想不通过DMA方式来进行两路AD电压信号采集。单路读取方法为
aADCxConvertedData = HAL_ADC_GetValue(&hadc);
两路AD电压信号采集(非DMA方式)为:使用非连续转换,每次配置某个通道 、然后启动ADC,读取数据;再开启另一通道,启动ADC,读取数据。
部分程序为:
static uint16_t aADCxConvertedData[2];static void MX_ADC_Init(void){ hadc.Instance = ADC1; hadc.Init.OversamplingMode = DISABLE; hadc.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV1; hadc.Init.Resolution = ADC_RESOLUTION_12B; hadc.Init.SamplingTime = ADC_SAMPLETIME_1CYCLE_5; hadc.Init.ScanConvMode = ADC_SCAN_DIRECTION_FORWARD; hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT; hadc.Init.ContinuousConvMode = DISABLE; hadc.Init.DiscontinuousConvMode = ENABLE; hadc.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; hadc.Init.DMAContinuousRequests = DISABLE; hadc.Init.EOCSelection = ADC_EOC_SINGLE_CONV; hadc.Init.Overrun = ADC_OVR_DATA_PRESERVED; hadc.Init.LowPowerAutoWait = DISABLE; hadc.Init.LowPowerFrequencyMode = DISABLE; hadc.Init.LowPowerAutoPowerOff = DISABLE; if (HAL_ADC_Init(&hadc) != HAL_OK) { Error_Handler(); } /**Configure for the selected ADC regular channel to be converted. */// sConfig.Channel = ADC_CHANNEL_8;// sConfig.Rank = ADC_RANK_CHANNEL_NUMBER;// if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)// {// Error_Handler();// }// /**Configure for the selected ADC regular channel to be converted. // */// sConfig.Channel = ADC_CHANNEL_9;// if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)// {// Error_Handler();// }}int main(void){ HAL_Init();/* Configure the system clock */ SystemClock_Config(); BSP_LED_Init(); /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_ADC_Init(); while (1) { sConfig.Channel = ADC_CHANNEL_8; sConfig.Rank = ADC_RANK_CHANNEL_NUMBER; if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK) { Error_Handler(); } if (HAL_ADC_Start(&hadc) != HAL_OK) { Error_Handler(); } aADCxConvertedData[0] = HAL_ADC_GetValue(&hadc); sConfig.Channel = ADC_CHANNEL_9; if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK) { Error_Handler(); } if (HAL_ADC_Start(&hadc) != HAL_OK) { Error_Handler(); } aADCxConvertedData[1] = HAL_ADC_GetValue(&hadc); }}
0 0
- STM32L073RZ进行两路AD电压信号采集(非DMA方式)
- STM32通过DMA方式采集多路AD
- STM32采集AD电压
- STM32通过DMA采集多通道AD
- STM32通过DMA采集多通道AD
- TM32通过DMA采集多通道AD
- STM32通过DMA采集多通道AD
- 基于DMA 控制STM32F407两(多)路AD通道配置
- stm32 非DMA方式 多路ADC ADC1,ADC3两种方式求助
- 用ADC连续采集11路模拟信号,并由DMA传输到内存
- STM32之内部3个ADC+2个DMA同时采集14路信号
- atmega8 例程: 查询方式AD采集
- atmega8 例程:AD中断方式采集
- TQ2440 AD中断方式采集数据
- PCIEx8接口FPGA处理DMA控制器高速信号采集卡
- 关于Stm32定时器+ADC+DMA进行AD采样的实现
- 关于Stm32定时器+ADC+DMA进行AD采样的实现
- PCBA中电芯采样电路处使用0.1uf电容,AD采集电压不稳
- javascript in运算符
- 树莓派3更换软件源
- Adapter and repaint
- 左程云著算法与数据结构题目最优解笔记-反转单双链表
- 起航计算机世界------ 今天开通了自己的技术博客
- STM32L073RZ进行两路AD电压信号采集(非DMA方式)
- HTML中的<pre>标签
- Linux正则表达式
- 惠普打印机换硒鼓(墨盒)
- 操作系统之loader的实现
- 设计模式实现——观察者模式
- 使用heroku和mLab部署项目(Nodejs)
- java常见笔试面试题
- 操作系统实现之保护模式