使用STM8S105K4T6C 模数转换器的12通道

2020-02-08来源: eefocus关键字:STM8S105K4T6C  模数转换器  12通道

分享今天遇到的一个stm8s模数转换的小问题~~~


这款单片机一共提供了7个模数转换通道,他们分别是AIN0-AIN5和AIN12。

stm8s105k4t6c的管脚图


其中AIN0-AIN5的配置和使用方法如下,配置为连续转换、扫描模式(代码写的不好,大神请见谅~):

[mw_shl_code=c,true]/*---------------------------------包含头文件---------------------------------*/

#include "adc.h"

 

#define        ADC        60                                                                                                                                  //滤波深度,不宜过高,防止越界 u16

 

/*---------------------------------全局标志位---------------------------------*/

 

/*----------------------------------函数定义----------------------------------*/

 

//*----------------ADC1端口初始化函数---------------*/

static void Adc_Gpio_Init(void)                                                                                                                //使用第12通道

{

        GPIO_Init(GPIOF, GPIO_PIN_4, GPIO_MODE_IN_FL_NO_IT);

}

 

/*------------------ADC1初始化函数-----------------*/

void Adc1_Init(void)

{   

        Adc_Gpio_Init();

        ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS,                                                                          //连续转换

                         (ADC1_Channel_TypeDef)(ADC1_CHANNEL_12),                                                          //开启12通道

                         ADC1_PRESSEL_FCPU_D2,                                                                                          //2分频

                         ADC1_EXTTRIG_TIM,

                         DISABLE,                                                                                                              //关闭外部触发

                         ADC1_ALIGN_RIGHT,                                                                                                  //右对齐

                         (ADC1_SchmittTrigg_TypeDef)(ADC1_SCHMITTTRIG_CHANNEL12),                        

                         DISABLE);                                                                                                           //关闭施密特触发器

        ADC1_Cmd(ENABLE);                                                                                                                          //使能ADC1

        ADC1_DataBufferCmd(ENABLE);                                                                                                  //开启缓存

        ADC1_ScanModeCmd(ENABLE);                                                                                                          //启用扫描模式

        ADC1_StartConversion();                                                                                                          //开始转换

}

 

/*-------------------ADC获取AD值------------------*/

uint16_t Get_Adc1_Value(ADC1_Channel_TypeDef channel)  

{

uint8_t t;

uint16_t data = 0;

for(t=0;t

{

   data+=ADC1_GetBufferValue(channel);

}

   return (uint16_t)(data/ADC);             //返回转换平均值

}

/*--------------Write-by-xiao-kai2017561714----QQ-850637704------------*/

/*-------------------------Always have a nice day-----------------------------*/[/mw_shl_code]


当我们想使用AIN12的时候,如果使用上面的代码就不能正确使用这个通道了。为什么呢?  看下图

stm8s105k4t6c ADC1简介


注意大红框中的NOTE:大概的意思是说:额外的AIN12通道不能用于ADC扫描模式和模拟看门狗模式,而且AIN12通道转换结果只会存在 ADC_DRH/ADC_DRL这两个寄存器中!  


既然是这样:那我们应该去stm8s的固件库中去寻找可以操作AIN12的函数咯,要注意库寄存器的风格,查找的格式应该是“ADC1->DRL”或"ADC1->DRH",就会找到uint16_t ADC1_GetConversionValue(void),而且就只有这个函数使用到了这两个寄存器,就是它了!!!


然后把上面操作AIN0-AIN5的初始化函数注释掉ADC1_ScanModeCmd(ENABLE); //启用扫描模式,调用ADC1_GetConversionValue()就可以了,STM8S好用没毛病!!! 

关键字:STM8S105K4T6C  模数转换器  12通道 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic487549.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:stm8——LED流水灯实现
下一篇:STM8L的USART1串口通信详解 含例程

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

Teledyne e2v推出12位四通道模数转换器 支持高达6.4GSps转换速率
Teledyne e2v致力于不断提升产品性能,近日更推出了12位四通道模数转换器(ADC)--EV12AQ605。这款最新的信号调理解决方案是该公司热门ADC EV12AQ60的新版本,两者具有几乎相同的功能,但是更低的价格,将吸引批量生产并对成本敏感的应用市场的目光。两者的主要区别是保存在一次可编程(OTP)存储器中交织不匹配校准设置的数量以及支持的温度范围(-40°C至+ 110°C,而EV12AQ600支持-55°C至+125° C)。该系列ADC采用管脚兼容设计,工程师无需更改现有基于EV12AQ600的设计,可以简单快速替换。EV12AQ605交叉点开关设计,意味着四个处理内核可以独立运行,亦可配合工作,从而可以分配
发表于 2019-12-04
Teledyne e2v推出12位四通道模数转换器 支持高达6.4GSps转换速率
TI新型音频模数转换器可在嘈杂环境中实现低失真录音
工程师现在可实现120dB的动态范围,以便在智能家居应用中采集清晰、高保真的语音 德州仪器(TI)推出了一种新型音频模数转换器(ADC),能够在比行业同类产品远4倍的距离以外采集到清晰的语音。TLV320ADC5140是业界具备同等性能的体积更小的四通道音频ADC,是TI新推出的三款Burr-Brown™音频ADC系列产品之一,可以在嘈杂的环境中实现低失真录音,还可以在任何环境中进行远场高保真录音。 智能家居系统面临着远场音频采集的挑战。由于麦克风数量有限且信号处理能力受限,现有的智能家居系统难以在嘈杂的环境中采集和理解语音命令。而TLV320ADC5140可以帮助工程师应对这一挑战,它能够改善跨房间的音频采集
发表于 2019-11-22
TI新型音频模数转换器可在嘈杂环境中实现低失真录音
2440裸机编程之七 模数转换器ADC
S3C2440A 内部具有8 路模拟信号输入的10 位模/数转换器(ADC)。用到的寄存器有:ADCCON:用于选择通道、设置频率、开始转换、结束标志   ADC的频率 = PCLK/(ADCCON[13:6]+1)ADCDATn:用于读出ADC通道n的转换结果:ADCDATn[9:0]下面是个ADC通道0的实验程序://********************************************************************#define adc_frequency 2000000void Main(void){      
发表于 2019-11-09
2440裸机编程之七 模数转换器ADC
技术文章—高精度SAR模数转换器的抗混叠滤波考虑因素
简介 在物联网和云计算成为生活一部分,在行业媒体大肆宣扬之际,通过采用最先进的技术和优化设计,老式电子元件并未停止前进的步伐。其中一个例子是模数转换器,该器件现在可以超过每秒一兆次采样(MSPS)的速率实现32位分辨率,轻松通过传统的计量基准测试。 这些高精度转换器可以显示高于16位的分辨率,规定可比静态和动态特性,并且在仪表仪器和大型通用采集系统(测试、设备认证)、专业系统(医疗应用和光谱学数字成像)等专用领域以外,它们已经进入许多过程控制应用、可编程控制器、大型电机控制以及电能输配等领域。目前,几种ADC架构在精度方面不相上下;根据不同需求,具体的选择视模数转换原理、逐次逼近寄存器(SAR)以及Σ-Δ而定
发表于 2019-03-26
技术文章—高精度SAR模数转换器的抗混叠滤波考虑因素
TI四通道ADS54J64模数转换器开售
半导体和电子元件分销商贸泽电子 (Mouser Electronics) 即日起备货Texas Instruments (TI) 的四通道1 GSPS ADS54J64模数转换器 (ADC)。14位ADS54J64 ADC提供高信噪比 (SNR)、高带宽以及500 MSPS的最大输出采样率。ADS54J64 ADC支持高速JESD204B串行数据接口,简化了与处理器的连接,并提供高达10 Gbps的数据传输速率,每个通道上具有一条信道,适用于电信接收器和微波接收器等各种应用。 贸泽电子供应的TI ADS54J64 ADC通过使用模拟输入缓冲器在很宽的频率范围内提供一致的阻抗。 该器件提供仅2.5 W 的低功耗,并在很宽
发表于 2018-07-16
TI四通道ADS54J64模数转换器开售
8通道示波器加快处理速度
如果您的目标是严格地测量定时关系,那么特别适合这种方法,但不能测量开机/关机的上升/下降时间或形状(单调性)。8通道示波器加快处理速度与前面所有方法相比,使用具有8条模拟通道的示波器可以明显缩短时间,减少混乱。在8通道示波器中,可以使用模拟探头表征拥有最多8条电源排线。为测量拥有8条以上电源排线开机和关机定时关系,也可以使用拥有数字信号输入及独立可调阈值的混合信号示波器。现在,让我们看一些典型的电源测序应用。带远程开/关的开机延迟下面截图中被测的开关电源生成了一个高电流、稳压的12 VDC输出。这个电源通过仪器前面板上的开关进行远程遥控。在开关按下后不久,+5 V待机电源打开,开关转换器启动。在+12 V输出稳定后,Power
发表于 2020-02-01
8通道示波器加快处理速度
小广播
何立民专栏 单片机及嵌入式宝典

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

更多每日新闻
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved