微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM8S103F AD采集

STM8S103F AD采集

时间:11-18 来源:互联网 点击:
AD初始化

ADC_CR1 = 0x60; // 设置AD转换时钟1/12,单次转换模式
ADC_CR2 = 0x08; // 设置数据为右对齐
ADC_CR3 = 0x00; // 不使用数据缓冲
ADC_CSR = 0x03; // 选择AD转换通道3
ADC_TDRL=0xff; //关闭施密特触发器

AD转换程序

void ADC_change(void)
{

ADC_CSR = 0x03; // 选择AD转换通道3
ADC_CR1 |= 0x01; // 打开AD模块电源
Delay1ms(50); // 延时至少100uS,用于等待采样保持电容充电至稳定
ADC_CR1 |= 0x01; // 启动AD转换

while(!(ADC_CSR & 0x80)); // 等待AD转换完成
AD_data[5]=ADC_DRH;
AD_data[6]=ADC_DRL;
AD_result1=(AD_data[5]*256)+AD_data[6];

ad_temp=(AD_result1*(float)3300)/(float)1024; //3.3V供电
AD_result=(uint)ad_temp;

AD_data[0]=(uchar)(AD_result/1000);
AD_data[1]=(uchar)((AD_result%1000)/100);
AD_data[2]=(uchar)(((AD_result%1000)%100)/10);
AD_data[3]=(uchar)(((AD_result%1000)/100)%10);

ADC_CSR &= 0x7f; //EOC软件清零
ADC_CR1 &= 0xFE; //关闭ADC

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top