STM32HAL库CubeMX配置ADC多通道选择读取(非DMA)

CubeMX配置ADC多通道选择读取(非DMA)

最近在做项目时需要stm32f103分别读取角度传感器值和电压值,采用HAL库+CubeMX方式并没有找到像标准库一样直接可以调用ADC_RegularChannelConfig()函数选择ADC的通道,各种查找后找到一种解决方案,分享一下。

1 利用CubeMX建立工程

这里采用的是常用的STM32F103C8T6芯片,选择外部高频时钟,SWD调试
在这里插入图片描述
在这里插入图片描述
根据原理图,PA6口采集电压值,PA3口采集角度传感器值,分别对应ADC1通道6和通道3
在这里插入图片描述
在这里插入图片描述
配置ADC1,选择ADC通道3和通道6,独立模式、右对齐、取消规则转换
在这里插入图片描述
配置串口,方便打印角度值和电压值
在这里插入图片描述
设置主时钟为72MHz,完成CubeMX工程配置。
在这里插入图片描述
在这里插入图片描述

2 编写单独读取ADC通道函数

建立sConfig结构体,选择不同通道实现单独读取

//ch(1-6Chnnal),times(读取次数)
uint32_t ADC_Get_Average(uint8_t ch,uint8_t times)
{
   
	ADC_ChannelConfTypeDef sConfig;		//通道初始化
	uint32_t value_sum=0;	
	uint8_t i;
	switch(ch)							//选择ADC通道
	{
   
		case 1:sConfig.Channel = ADC_CHANNEL_1;break;	
		case <
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值