历史上的今天
今天是:2025年03月31日(星期一)
2020年03月31日 | STM8S ADC初始化设置及应用
2020-03-31 来源:eefocus
//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 ;
史海拾趣
|
请大家指点指点呀,不胜感激 要求是继电器输出低电平时报警, 由于有8个继电器所以必须知道是哪个报警,(下边只写了2个) 报警时都在P2.7口输出 ALARM CLR P2.7   ...… 查看全部问答> |
|
我是将BSP包中的LCD显示部分文件全部拷到另一个目录下,然后在那个目录下的一个文件里面包含了个头文件(这个头文件在那个LCD显示文件中有定义的),也更改了source文件路径的,然后编译出现一大堆错误。sysgen了也不行的。请问是什么原因? … 查看全部问答> |
|
我使用2440+wince5与PC通过jrtplib通信,现在发现pc可以发送数据到网络,但是wince方面好像不行,抓包发现icmp:port unreachable, 是不是port被占用了呢?而且icmp、udp、tcp刚好是占用同一个字节(指定网络包协议),会不会是字节顺序问题?但 ...… 查看全部问答> |
|
●●高分求教用RDA同步SQL CE 2.0同SQL Server 2000数据的问题●● 用RDA的Pull方法的时候报错: IIS 错误 405 HTTP_STATUS_BAD_METHOD:不允许所使用的HTTP谓词。 --------------------------------------------------------------------- //我的代码 SqlCeRemoteDataAccess rda = new SqlCeRemoteDataAccess(); ...… 查看全部问答> |
|
我的pxa270开发版有4个串口(uart0~uart3),其中uart0用来和超级终端连接打印调试信息,下载了ce5.0。用evc编写的串口程序,打开了COM0:设置好了波特率等后writefile成功,但是不知为什么pc这边无法接收到信息,pc这边发送信息开发版也无法受到。 ...… 查看全部问答> |




