STC——ADC使用

1、使用配置流程

  • 初始化
    打开ADC电源
    清除CHS,通道选择位
    选择ADC通道
    设置GPIO位高阻输入
    设置ADC时钟频率(ADCCFG寄存器)
    设置ADC 转换结果格式控制位(置1右对齐)
  • 启动转换
    选择通道
    启动转换
    等待转换完成(ADC_CONTR寄存器)
    清标志位
    存储RES RESL结果寄存器
    处理数据

2、相关寄存器

  • ADC 控制寄存器List item
  • ADC 配置寄存器
    在这里插入图片描述
  • ADC 转换结果寄存器
    在这里插入图片描述
    在这里插入图片描述

3、代码

初始化


void adc_init()
{
	ADC_CONTR |= 1<<7;			//打开 ADC 电源
	ADC_CONTR &= (0xF0);		//清除ADC_CHS[3:0] : ADC 模拟通道选择位
	ADC_CONTR |= 0x01;          //P1^1口
	
	//IO口设置为高阻输入
	P1M0 &= ~0x02;
    P1M1 |= 0x02;

	ADCCFG |= 0x60&0x0F;		//ADC时钟频率

	ADCCFG |= 1<<5;				//转换结果右对齐。 ADC_RES 保存结果的高 2 位, ADC_RESL 保存结果的低 8 位。
}

启动转换

uint16 adc_once()
{
	uint16 adc_value;
	
	ADC_RES=ADC_RESL=0;				//清数据
	
	ADC_CONTR |= 0x40;  			// 启动 AD 转换
	while (!(ADC_CONTR & 0x20));  	// 查询 ADC 完成标志
	ADC_CONTR &= ~0x20;  			// 清完成标志
	
	
	adc_value = ADC_RES; 		 	//存储 ADC 的 12 位结果的高 4 位
	adc_value <<= 8;
	adc_value |= ADC_RESL;  		//存储 ADC 的 12 位结果的低 4 位

	return adc_value;
}
  • 10
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dz小伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值