STM8S ADC初始化设置及应用
2024-10-19 14:44:39
//ADC通道号定义
#define ADC_Chanel0 (unsigned char)0x00
#define ADC_Chanel1 (unsigned char)0x01
#define ADC_Chanel2 (unsigned char)0x02
#define ADC_Chanel3 (unsigned char)0x03
#define ADC_Chanel4 (unsigned char)0x04
#define ADC_Chanel5 (unsigned char)0x05
#define ADC_Chanel6 (unsigned char)0x06
#define ADC_Chanel7 (unsigned char)0x07 //*************************************
// 函数名称:Init_AD
// 函数功能:对AD初始化,开启或关闭ADC电路
// 入口参数:ADC电路使能参数
// 出口参数:无
/***************************************/
void Init_AD(uint8 Mode)
{
uint16 i ; if(Mode == ENB) //启动ADC电路
{
// F/4 转换时间分频 Fadc = Fmaster/ADC_CR1[4..6]
// [000 F/2] [001 F/3] [010 F/4]
ADC_CR1 = (ADC_CR1 & 0X8F) | 0X00 ; //f/2
// 数据左对齐
ADC_CR2 &= ~0X08 ;
// 启动ADC
ADC_CR1 |= 0X01 ;
// 等待AD电路稳定
for(i=0;i<500;i++) ; ADC_CSR &= ~0X80 ; //转换结束标志清0 return ;
}
else
{
ADC_CR1 &= ~0X01; //关闭ADC电路
return ;
}
} //*************************************
// 函数名称:AdcSwitch
// 函数功能: 在单通道模式下转换某一通道的AD值
// 在(扫描模式下)连续转化1-Chanel的AD值
// 入口参数:要转换的AD通道号
// 出口参数:无
/***************************************/
void AdcSwitch(uint8 Chanel)
{
//选择转换通道
ADC_CSR = (ADC_CSR & 0XF0) | Chanel;
// 启动ADC
ADC_CR1 |= 0X01 ;
//等待转换
while(!(ADC_CSR & 0X80));
ADC_CSR &= ~0X80 ; return ;
} //*************************************
// 函数名称:Adc_Mode_Scan
// 函数功能: ADC扫描模式设置函数
// 入口参数:扫描模式开启参数
// 出口参数:无
/***************************************/
void Adc_Mode_Scan(uint8 Value)
{
if(Value == ENB)
{
ADC_CR2 |= 0X02 ;
}
else
{
ADC_CR2 &= ~0X02 ;
}
} //---应用实例-----
//ADC初始化设置
Init_AD(ENB); //初始化ADC电路并开启电路
// Adc_Mode_Scan(OFF) ;//ADC扫描模式使能 //ADC 转换
AdcSwitch(ADC_Chanel3) ;//转换通道3
TmpH = ADC_DRH ; //取转换结果
TmpL = ADC_DRL ;
最新文章
- 如何使用Profiler跟踪阻塞信息
- 并发下常见的加锁及锁的PHP具体实现-转载
- Fix catalyst driver in Ubuntu 13.04 / 13.10
- 每天一个linux命令(9):touch 命令
- ASP.NET MVCでResponse Headerのサーバーバージョンをどうやって隠しますか?
- 安装VS2010水晶报表插件
- select2插件的使用
- 立即调用的函数表达式IIFE
- Bootstrap3.0学习第九轮(CSS补充)
- 基数排序(radix sort)
- 日期加减js,天数组增加,日期自动修改
- linux 文件属性
- Linux编辑器vi使用方法详细介绍
- 奇怪的JS正则表达式问题
- 快捷键accesskey
- maven环境变量的配置及+eclipse的配置使用
- MultipartFile实现文件上传
- Failed to instantiate [java.util.List]: Specified class is an interface
- 4-[多进程]-互斥锁、Queue队列、生产者消费者
- ExtJs在页面上window再调用Window的事件处理