STM8获取电压值

发布者:平凡的梦想最新更新时间:2019-01-29 来源: eefocus关键字:STM8  获取电压值 手机看文章 扫描二维码
随时随地手机看文章

STM8获取电压值

 

(1)端口定义

static void ADC_POWER_Config()

{

  /*  Init GPIO for ADC1 */

  GPIO_Init(GPIOB, GPIO_PIN_2, GPIO_MODE_IN_FL_NO_IT);//可变电阻

  ADC1_DeInit();

  ADC1_Init(ADC1_CONVERSIONMODE_SINGLE, ADC1_CHANNEL_2, ADC1_PRESSEL_FCPU_D2, ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL0, ENABLE);

  ADC1_Cmd(ENABLE);

}

 

(2)获取电压值(这里采集五次取平均值)

#define  BATTERY_CHECK_COUNT_PER_COLLECT   5   //每次采集的次数

u16 Get_ADC_POWER_Value(void)

{

   u16 nBattery_Check_Value = 0;

   u16 nNum = 0;

 

  for(nNum = 0; nNum < BATTERY_CHECK_COUNT_PER_COLLECT; nNum++)//采集BATTERY_CHECK_COUNT_PER_COLLECT次,累加采集的电量值

  {

    

    ADC1_StartConversion();//开始转换

    nBattery_Check_Value += ADC1_GetConversionValue(); //累加读取adc的转换值  

  }

  

  nBattery_Check_Value = nBattery_Check_Value/(BATTERY_CHECK_COUNT_PER_COLLECT*10);//求出电量平均值

  return nBattery_Check_Value;

}

 

(3)main函数

void main(void)

{

     ADC_POWER_Config();

    

u16 nBattery_Check_Value2 = 0;

nBattery_Check_Value2 = Get_ADC_POWER_Value(); //读取电量

printf("nBattery_Check_Value2 = %d\n",nBattery_Check_Value2);

}

 

关键字:STM8  获取电压值 引用地址:STM8获取电压值

上一篇:单片机模拟I2C总线通信的几个关键程序
下一篇:STM8L15x系列单片机判断指定I/O引脚电平

推荐阅读最新更新时间:2024-03-16 16:23

STM8在IAR中Option Byte配置
近期帮客户调试STM8的程序使用到OptionByte配置,在网上查询几乎都是介绍如何通过函数实现;后查看IAR帮助文档找到了IAR配置OptionByte的方法。具体方法如下: 1、在工程Options...选项Debugger中选择你的调试工具,选择好后会在IAR的菜单栏中出现对应的调试工具菜单。如下图所示,我这里选择的是ST_LINK。 2、选择上图所示ST_LINK菜单中的Option Bytes选项,进入下图所示的设置界面。 3、通过右键修改需设置的选项,保存并记住保存的路径。 4、如下图所示再次打开工程Options...对话框,选择你是用的调试工具选项。我使用的的是ST-LINK。勾选Use option b
[单片机]
<font color='red'>STM8</font>在IAR中Option Byte配置
STM8 单线半双工通信
UART可以配置成遵循单线半双工协议。单线半双工模式通过设置UART_CR5寄存器的HDSEL位实现。在该模式下,下面的位必须保持清零状态: UART_CR3寄存器的LINEN和CLKEN位 UART_CR5寄存器的SCEN和IREN位 注意:该功能只适用于STM8的UART1。 当HDSEL写'1'时 UART_RX不再被使用 。 当没有数据传输时,UART_TX处于释放状态。因此,它在空闲状态的或接收状态时表现为一个标准I/O口。这就意味该I/O在不被UART驱动时,必须配置成悬空输入(或开漏的输出高)。 除此以外,通信与正常UART模式类似。要注意的是必须由软件来管理线上的冲突(例如通过使用一
[单片机]
STM8单片机ADC带缓存的连续采样模式
在上一篇文章中说了STM8的ADC连续采样模式,为了提高采样的精度和速率,STM8单片机还提供了带缓存的连续采样模式,也就是说ADC会连续采集8个数据,放在缓存中,读取数据时可以一次从缓存中读取8个数据,这样就可以通过8个数据数据计算平均值,使得采样的结果更加准确。 下面看一下官方文档中的对缓存模式的介绍。 通过文档中可以看出,要开启缓存模式,只需要将ADC_CR3寄存器中的COUNT为DBUF设置为1,就可以开启缓存模式了。 当开启缓存模式后,采样的结果将不会存放在ADC_DR寄存器中,而是会将结果依次存放在ADC_DB0R寄存器到ADCDB7R寄存器,连续读取8次数据,存储在这8个寄存器中。读取数据的时候,依次从这
[单片机]
<font color='red'>STM8</font>单片机ADC带缓存的连续采样模式
基于STM8的IAR 配置实现
  以STM8为例:   将项目使用的MCU型号的icf文件拷贝到项目里面,icf一般放在   C:Program FilesIAR SystemsEmbedded Workbench 6.5stm8config   这个目录下。   1、拷贝lnkstm8s207rb.icf   例如,我用的是STM8S207RB,则我会将lnkstm8s207rb.icf这个文件拷贝到我项目里面。   2、设置项目属性   打开项目的OpTIon属性,然后修改linker--》Linker configuraTIon file这项里面的内容为:   $PROJ_DIR$lnkstm8s207rb.icf   如图,      点确
[单片机]
基于<font color='red'>STM8</font>的IAR 配置实现
STM8 汇编学习笔记2: 开发环境
写在前面 就我所知,STM8的开发平台有两种:意法官方的STVD和IAR for STM8. STVD没尝试过。反正IAR用的感觉还凑合,各种该有的功能都有,但界面不怎么友好。估计是低版本的缘故,由于我长时间盯着屏幕眼睛酸痛,所以没办法只能把编辑界面底色改成黑色,可TM怎么行号编程白色的了?根本看不清。看不清就不看了呗,反正也没啥用。但是就是感觉超不爽。而且字体显示不知道怎么搞的,在缩放的时候就变得特别奇怪,跟手写的一样。 相关资料 如之前所述,官方的永远是最好的,没有谁比创造者更了解他的产品了。 环境设置 俗话说,站在巨人的肩膀上能看得更远。学习汇编也是一样,先看代码。但是由于汇编对于不同的芯片差异很大,网络上也很难找到
[单片机]
<font color='red'>STM8</font> 汇编学习笔记2: 开发环境
STM8中断向量表
// Copyright (c) 2009, Wolver Wang, Innov Inc. R&D Center // wolver@21com.com // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // 1. Redistributions of source code must retain the above cop
[单片机]
关于STM8的AFR0和AFR1使用
芯片手册中写AFR0和AFR1不能同时使用 AFR1 Alternate function remapping option 1 (2) 0: AFR1 remapping option inactive: default alternate function(1); 1: Port A3 alternate function = SPI_NSS; port D2 alternate function =TIM2_CH3. AFR0 Alternate function remapping option 0(2) 0: AFR0 remapping option inactive: Default alternate func
[单片机]
关于<font color='red'>STM8</font>的AFR0和AFR1使用
基于IAR的STM8工程的创建
最近工作闲下来了,趁有时间,琢磨了一下STM8芯片。先看图片,在网上买了一块STM8的核心板,手上正好有一个St-Link仿真器,赶紧把环境搭起来了。自己的笔记本太老了,只有两个USB口,还扩展了一个USB HUB。 硬件环境 今天专门查了一下JTAG、JLink、ULINK、ST-LINK,区别如下: (1)JTAG是一种国际标准测试协议,主要用于芯片内部的测试,如ARM,DSP等; (2)JLink同样遵循JTAG协议,是JTAG加上一个USB转接器; (3)ULINK是Keil/ARM公司自己生产的,用于ARM系列新品测试,仅支持Keil环境; (4)ST-LINK是针对STM32和STM8系列洗牌芯片的仿真器。 STM8
[单片机]
基于IAR的<font color='red'>STM8</font>工程的创建
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved