历史上的今天
今天是:2024年09月02日(星期一)
2021年09月02日 | STM8S103 ADC初始化设置
2021-09-02 来源:eefocus
adc.h
#ifndef __ADC_H_
#define __ADC_H_
#include “define.h”
//ADC通道号定义
#define ADC_Channel0 (unsigned char)0x00
#define ADC_Channel1 (unsigned char)0x01
#define ADC_Channel2 (unsigned char)0x02
#define ADC_Channel3 (unsigned char)0x03
#define ADC_Channel4 (unsigned char)0x04
#define ADC_Channel5 (unsigned char)0x05
#define ADC_Channel6 (unsigned char)0x06
#define ADC_Channel7 (unsigned char)0x07
#define ENB 1
extern void adc_init(uint8 mode);
extern void adc_switch(uint8 channel);
extern void adc_mode_scan(uint8 value);
extern void read_adc(uint8 channel);
#endif
adc.c
#include “adc.h”
#include “uart.h”
//*****************************
//函数名称:adc_init
//函数功能:对ADC初始化,开启或关闭ADC电路
//入口参数:ADC电路使能参数
//出口参数:无
//*****************************
void adc_init(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;
//等待ADC电路稳定
for(i=0; i<500; i++)
;
ADC_CSR &= ~0x80; //转换结束标志清0
return;
}
else
{
ADC_CR1 &= ~0x01; //关闭ADC电路
return;
}
}
//********************************
//函数名称:adc_switch
//函数功能:在单通道模式下转换某一通道的ADC值
// 在(扫描模式下)连续转换1-Channel的ADC值
//入口参数:要转换的ADC通道号
//出口参数:无
//********************************
void adc_switch(uint8 channel)
{
//选择转换通道
ADC_CSR = (ADC_CSR&0xf0)|channel;
//启动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;
}
}
void read_adc(uint8 channel)
{
unsigned char tmpH, tmpL;
uint8 temp;
adc_switch(channel);
tmpH = ADC_DRH;
tmpL = ADC_DRL;
temp = tmpH;
temp *= 50;
temp /= 256;
//uart1_send_byte(tmpH);
//uart1_send_byte(tmpL);
uart1_send_byte(temp);
}
在主函数里直接调用 read_adc(channel)
下一篇:STM8S103定时中断初始化
史海拾趣
|
我现在本身有一份工作,但从事的不是自己喜欢的行业,考虑了很多,准备从事嵌入式行业。 但是没有相关工作经验,投了很多简历没有公司要的,所以想通过参加培训的方式过渡到这个行业。 在51JOB上看到海同培训有这个机会,刚才也亲自去现场查看过 ...… 查看全部问答> |
|
新建了一个群,主要想招揽高级别的开发者,一起分享开发经验。 虽然不一定能解决各自问题,至少能开阔眼界。 本群的特点: 1.新股,有潜力。 2.股东有实力。 3.年底分红。 4.稳赚不赔。 要求至少3年以上项目经验。对几个常见系统之一 WinCE/W ...… 查看全部问答> |
|
很多同学都说连接电脑连接不上,很多都是USB转串口驱动安装的问题,要是win7的系统的话请下载(WIN7 系统USB转串口驱动),如果是XP的请下载(XP系统USB转串口驱动)。… 查看全部问答> |




