STM32F4系列实用性代码之ADC

 以下代码基于标准库编写(代码全部实测可行)-复制粘贴即可使用

 一、F4系列代码   触发式-单次转换

 主程序

uint16_t ADValue;			//定义AD值变量
float Voltage;				//定义电压变量

int main(void)
{
	
	AD_Init();	//AD初始化
	
	
	while (1)
	{
		ADValue = AD_GetValue();//---获取AD转换的值
		Voltage = (float)ADValue;//--4095 * 3.3;//将AD值线性变换到0~3.3的范围,表示电压
		Delay_ms(100);//-------------延时100ms,手动增加一些转换的间隔时间
	}
}


 子程序

/**
 *****************************************************************************************

	* @brief:	F429-AD初始化
	* @other:	
	* @param:				
	* @retval:	无
    * @note:	在STM32F429中,ADCCLK最大频率为36M,而APB2的一般配置为90M,所以,在F429中,AD
                采样的频率一般设置为:90/4=22.5M。

                以PC5所对应的 ADC12_IN15 为例,此处使用ADC1							
							
 *****************************************************************************************
 **/
void AD_Init(void)
{
	/*开启时钟*/
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);	//开启ADC1的时钟
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);	//开启GPIOC的时钟
	
	
	/*GPIO初始化*/
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;//将PC5引脚初始化为模拟输入
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOC, &GPIO_InitStructure);
	
	/*初始化ADC_CCR寄存器。ADC通用控制寄存器*/
	ADC_CommonInitTypeDef ADC_CommonInitStruct;//
	ADC_CommonInitStruct.ADC_Mode = ADC_Mode_Independent;//-----------------------设置ADC的工作模式
  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值