历史上的今天
返回首页

历史上的今天

今天是:2024年12月23日(星期一)

正在发生

2019年12月23日 | STM8L之ADC

2019-12-23 来源:eefocus

STM8L之ADC

/*******************************************************************************

*名    称: Hal_Comm_GetBatADC

*功    能: 获取电池电量信息

*入口参数: 无

*出口参数: 电量AD值

*说    明: 

*******************************************************************************/

unsigned int Hal_Comm_GetBatADC(void)

{

unsigned int Result = 0, value_adc = 0;

unsigned char index = 0;


  GPIO_Init(VOL_ADC_PORT,VOL_ADC_PIN,GPIO_Mode_In_FL_No_IT);//VOL_ADC

  ADC1->CR1 |= 0x01;//使能AD

  ADC1->CR3 &= ~0x1F;//  选择采样时间 384 周期  通道清空 

  ADC1->CR3 |= 0x00;  // channel 0 is selected 

  ADC1->SQR[0] = ADC1->SQR[1] = ADC1->SQR[2] = ADC1->SQR[3] = 0x00;

  ADC1->SQR[3] = 0x01;// 选择通道0扫描  

  ADC1->SR &= 0x00;// conversion not complete 

  ADC1->SR = 0;    // conversion 标识清空

  ADC1->CR1 |= 0x03;//使能AD并开始转换 

  

  while(!(ADC1->SR & 0x01)); //waitloop   bit0: 1 complete   0 not complete 

  

  for(index = 0; index < 10; index++)

  {

    ADC1->SR = 0;  // conversion 标识清空 

    ADC1->CR1 |= 0x03;//使能AD  开始转换

    while(!(ADC1->SR & 0x01));//waitloop  conversion  complete 

    Result = ADC1->DRH;     //总共计算16bit的值,但ADC为12 bit 长度

    Result <<= 8;           //ADC1->DRH为高8位,

    Result += ADC1->DRL;    //ADC1->DRL为低8位

    value_adc += Result;

if(index != 0)value_adc = value_adc/2;  //获取多次数据,计算平均值  

    index++;

  }



  ADC1->CR1 &= 0xFE;//关闭AD 

  ADC1->CR3 &= ~0x1F;//选择通道 

  ADC1->CR3 |= 0x11; 



return value_adc;

}





我们一般在设计原理图的时候会把ADC的输入电压范围设定在:0~3.3v,如果设置ADC为12位的,那么12位满量程对应的就是3.3V,12位满量程对应的数字值是:2^12。数值0对应的就是0V。如果转换后的ADC数值为X,X对应的模拟电压为Y,那么会有这么一个等式成立:2^12/3.3=X/Y,=>Y=(3.3*X)/2^12



在我们的智能锁项目中,满量程Vref为3.31V,总电压(M6V)/测试电压(VOL_ADC) = 3

4096/3.31 = value_adc/Va



Va = value_adc * 3.31 / 4096



总电压 = Va * 3



即程序中的vin = value_adc * 3.31 * 3 / 4096 


推荐阅读

史海拾趣

ADI(亚德诺半导体)公司的发展小趣事

亚德诺半导体(Analog Devices Inc.,简称ADI)是一家全球领先的模拟技术公司,以下是该公司发展的五个相关故事:

  1. 公司成立与初期发展: 亚德诺半导体成立于1965年,总部位于美国马萨诸塞州。公司最初的业务主要集中在研发和生产模拟集成电路(ICs),为各种应用提供信号处理解决方案。其产品包括放大器、数据转换器、功率管理器等。

  2. 技术创新与产品推出: 亚德诺半导体在模拟领域持续进行技术创新,并不断推出具有竞争力的产品。公司在数据转换器、放大器、射频器件等方面处于领先地位,并不断扩展业务范围,涉足汽车、工业、通信等多个领域。

  3. 并购与战略合作: 亚德诺半导体通过并购和战略合作不断扩大规模和增强实力。公司先后收购了一系列企业,包括Hittite Microwave Corporation、Linear Technology Corporation等,进一步拓展了产品线和市场份额。

  4. 市场拓展与国际化发展: 亚德诺半导体积极拓展国内外市场,并实现了国际化发展。公司产品远销全球各地,与全球范围内的主要客户建立了长期合作关系。同时,公司在全球范围内设有研发中心、销售办事处和生产基地,为客户提供本地化服务和支持。

  5. 未来展望与持续发展: 亚德诺半导体将继续致力于技术创新和产品开发,加强与客户的合作,满足不断变化的市场需求。公司将继续扩大在汽车、工业、通信等领域的市场份额,并积极布局新兴市场,保持行业领先地位,实现业务的持续增长和发展。

Harbour Industries公司的发展小趣事

背景:20世纪末,随着电子技术的飞速发展,Handok敏锐地捕捉到了半导体行业的崛起机遇。公司决定投入大量研发资源,专注于开发新型半导体材料和技术。

发展:经过数年的潜心研究,Handok成功研发出一种具有更高导电性和稳定性的新型半导体材料,这一创新成果迅速获得了业界的广泛关注。公司迅速将这项技术应用于生产,推出了一系列高性能的半导体产品,迅速占领了市场的一席之地。

影响:Handok的技术革新不仅推动了公司自身的快速发展,还对整个半导体行业产生了深远的影响,促进了整个产业链的升级和转型。

广东长利光电(Changli Optoelectronic)公司的发展小趣事

在公司成立之初,广东长利光电面临着巨大的市场压力和资金困难。然而,公司创始人凭借着对LED技术的深刻理解和市场前景的坚定信念,决定专注于LED产品的研发和生产。他们引进了先进的生产设备和技术,不断创新,逐渐在市场上站稳了脚跟。这一时期,公司的研发团队经常加班加点,反复试验,以确保产品的质量和性能达到最佳状态。

AMI [American Megatrends Inc]公司的发展小趣事

在公司成立之初,广东长利光电面临着巨大的市场压力和资金困难。然而,公司创始人凭借着对LED技术的深刻理解和市场前景的坚定信念,决定专注于LED产品的研发和生产。他们引进了先进的生产设备和技术,不断创新,逐渐在市场上站稳了脚跟。这一时期,公司的研发团队经常加班加点,反复试验,以确保产品的质量和性能达到最佳状态。

ECS公司的发展小趣事

面对云计算技术的不断发展和市场竞争的加剧,ECS公司制定了面向未来的战略布局。他们将继续加大在研发方面的投入,推动ECS服务的不断升级和创新;同时,他们还将积极探索新的业务领域和市场机会,为客户提供更加全面、丰富的服务。此外,ECS公司还注重可持续发展和社会责任。他们致力于降低能耗和排放、推动绿色计算等方面的工作;同时,他们还积极参与社会公益事业和慈善活动,回馈社会。这些举措使得ECS公司不仅成为了一家领先的云服务提供商,还成为了一家具有社会责任感的企业。

Abbatron公司的发展小趣事

在电子行业的激烈竞争中,Abbatron公司以其创新的技术赢得了市场的认可。某年,公司研发团队成功开发出了一款新型的高效能芯片,这款芯片不仅性能卓越,而且功耗极低,引起了业界的广泛关注。通过这一技术突破,Abbatron公司在市场上占据了有利地位,并逐渐成为了行业内的佼佼者。

问答坊 | AI 解惑

[下载]ADS2005A快速入门中文教程(快速上手)

ADS2005A快速入门中文教程.doc ADS Momentum 仿真设计流程(英文).doc ADS Momentum 简介.doc ADS功能概述(ADS2005A,ADS2004A,ADS2003C).doc ADS中常用的数据文件.doc ADS主要仿真器介绍(ADS2005A, ADS2004A, ADS2003C).doc…

查看全部问答>

如何在程序中 调出 本地连接状态 这个窗口

就是双击任务栏上lan图标或wifi图标会弹出的窗口,如何在程序中调出这个窗口? 用ctlpnl.exe cplmain.cpl...貌似只能弹出网络控制面板中网络设置的窗口,而不是连接状态的窗口。…

查看全部问答>

人在南京,想找点项目长长见识

做了三年单片机了,乘着年轻想多学习学习,有什么项目能做的联系下吧zhaojun1118@163.com…

查看全部问答>

汇编这样会错吗?

;====delay  3s====                 clr     tr2                     ;shut&n ...…

查看全部问答>

【讨论】程序丢失,并不是个别现象

最近我们的产品发现了这个现象. 我在本论坛上搜索,发现这个问题真不少.当然,有些朋友很偏激,说ti是烂货,心情我是很理解的,因为我也遇到了这个问题,也很烦,但所有的帖子多没有下文,是否解决这个问题? 但我根据经验,和所有出现这个情况的用户的使用 ...…

查看全部问答>

电阻阻值变大

我们UPS 上有用了一个49.9K 电阻, 使用前测量完全正常,焊接机器上以后20小时拆下来 电阻阻值由49.9K  变成了67K  , 200个电阻出现3个变大的!   完全一样的电阻加50V 电阻30个小时没发现有异常, 我机器电阻两端2 ...…

查看全部问答>

【我给XILINX资源中心做贡献】VGA驱动

附件包括:原理图,pcb,文档教程《VGA驱动与实现》,usb下载驱动等。…

查看全部问答>

一个简易播放器的实现(有图有真相)

实训工程1 简易播放器项目需求基本需求:1. 使用Buzz播放音乐,音乐数据存在Code Flash空间2. 开机后在LCD显示所有音乐,可以通过上、下键翻页。当前音乐有指示。按确定键播放音乐。3. 播放音乐的同时在LCD1602屏上显示音乐的信息:演唱者,时间等 ...…

查看全部问答>

ARM图像处理的问题

各位高手,小弟是ARM初学者,现有这样个问题,我想用2440完成对图像的采集,并作边缘检测,请问下大家有什么好的意见或者建议,谢谢!…

查看全部问答>

求救!!!有人用IAR开发过STC的单片机吗?Orz...

之前用IAR for ARM感觉印象不错~ 最近要用51,之前都是用的Keil,打算试试IAR,于是去下载了IAR for 8051 我用的单片机是STC89C5608AD 但是程序编译之后烧进去不能执行啊!!代码已经简单到不能再简单了啊!!! #include int main() { &nb ...…

查看全部问答>