论坛风格切换切换到宽版
发帖 回复
返回列表  提醒:不能用迅雷等P2P下载,否则下载失败标(二级)的板块,需二级才能下载,没二级不要购买,下载不了
  • 751阅读
  • 5回复

stm8s adc使用例子源码 [复制链接]

上一主题 下一主题
离线deepken
 

性别:
帅哥
发帖
5
金币
6
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看楼主 倒序阅读 使用道具 0楼 发表于: 2016-11-13
stm8s adc 的一个例程源码 ?OO !M  
)"P.n-aF  
/******************** (C) COPYRIGHT  风驰iCreate嵌入式开发工作室 *************************** 1Ogtzf  
* 文件名  :adc.c m^0*k|9+G  
* 描述    :AD配置函数库   -jTK3&5  
* 实验平台:iCreate STM8开发板 -xH3}K%  
* 寄存器版本  :V2.0.0 3e;K5qSeo/  
* 作者    :ling_guansheng  QQ:779814207 8BS$6Pa  
* 博客    : r 3T#Nv  
* 修改时间 :2012-6-16 MS|1Q@S9  
E9 #o0Di  
* iCreate STM8开发板硬件连接 _cfAJ)8=  
   STM8的PF0口(也就是ADC2的AIN10)接的是光敏或热敏电阻 2qj0iRH#N<  
0B`rTLwB  
****************************************************************************************/ sh<JB`^$(?  
HwMe^e;  
=o"sBVj  
#include "adc.h" y(K:,CI  
#include "uart.h" \gZjq]3  
5= MM^$QG  
2)^T[zHe  
/************************************************************************** h7]>b'H  
* 函数名:ADC_conf Tkf4`Gxd  
* 描述  :ADC模块初始化 q*J-ii  
* 输入  :无 79lG~BGE  
* <l9qhqHv&  
* 输出  :无 b{e|~v6&  
* 返回  :无 vs.}Bou]  
* 调用  :外部调用 {K=[Fu=  
*************************************************************************/ s.}:!fBk  
void ADC_conf() +qF,XJ2  
{ E[_-s  
   ADC_CR1 = (0<<4)|(1<<1)|(0<<0);    //ADC时钟输入频率为16MHz 这里设置分频系数为2  连续转换模式 先禁止ADC转换       I1Gk^wO  
   ADC_CR2 = (1<<3)|(0<<1);           //设置数据右对齐  禁止扫描模式 lFM'F[-?-  
   b(g?X ( &  
   ADC_CSR = (0<<5)|(0xa<<0);         //不用外部触发 禁止转换结束中断 设置转换通道为AIN10 j\@|oW0  
   ADC_TDRH = 4;                      //禁止AIN10施密特触发器功能   p@xK`=Urb  
   ADC_CR1 |= 1;                      //第一次写1是从低功耗模式唤醒 Tq.%_/@M<  
   ADC_CR1 |= 1;                      //在这一位是1的情况下再次写1启动ADC转换 x(88Y7o.t  
} I03 45Hc  
laFF/g;sRC  
/************************************************************************** QW%BKF!  
* 函数名:Send_ADC_Value 3PZwz^oRh9  
* 描述  :ADC转换结果显示函数 m`ab5<%Gn  
* 输入  :AD_Value--ADC转换结果值 .l&<-l;UQ  
* Ne,u\q3f  
* 输出  :无 p>]2o\["  
* 返回  :无 W>7o ec  
* 调用  :内部调用 ~dqEUu!C  
*************************************************************************/ %8GY`T:^  
static void Send_ADC_Value(u16 AD_Value) 6JL:p{RLi  
{ 3UX})mW  
    UART1_SendByte(AD_Value/1000+0x30); e_pyjaY!s  
    UART1_SendByte(AD_Value%1000/100+0x30); GwVSRI:[N  
    UART1_SendByte(AD_Value%1000%100/10+0x30); SA$1rqU=  
    UART1_SendByte(AD_Value%1000%100%10+0x30); 'xp&)g L  
} | [lM2  
e6?h4}[+*  
/************************************************************************** ! =c&U.B  
* 函数名:ADC_GetConversionValue gobqS+c  
* 描述  :获取ADC转换结果 M%2 F7 FY  
* 输入  :无 3F0:v,+;  
* ^E8eW  
* 输出  :无 A,qWg0A]nt  
* 返回  :无 FLekyJmw~  
* 调用  :内部调用 MoP 0qNk  
*************************************************************************/ rx#\Dc}  
uint16_t ADC_GetConversionValue(void) /\9X0a2h|E  
{ VXAgp6  
  uint16_t value,temph;         /TgG^|  
  uint8_t templ;                  // 定义templ存储低8位数据  temph存储高8位数据 !>+Na~eN  
   9m fYB  
  while(!(ADC_CSR & 0x80));           //等待转换完成 WNPdym  
  templ = ADC_DRL; ou@ P#:<B  
  temph = ADC_DRH;                  //读取ADC转换  在左对齐和右对齐模式下 读取数据的顺序不同  参考STM8寄存器.PDFP371           M -df Gk  
   UI 7JMeV  
  value = (unsigned int)(templ | (temph << 8));   //注意是10位的转换精度 value、temph应为unsigned int 变量 DjjG?(1  
  return  value; GZ]; U] _  
}


评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

一般

差劲

性别:
帅哥
发帖
2549
金币
4561
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 1楼 发表于: 2016-11-13
      


离线lyh0739

性别:
人妖
发帖
1439
金币
192
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 2楼 发表于: 2016-11-13
看不懂呀,,


1111
离线jerryjwg

性别:
人妖
发帖
238
金币
455
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 3楼 发表于: 2016-11-13


离线q161051546

性别:
帅哥
发帖
37
金币
14
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 4楼 发表于: 2017-11-17
有些地方看懂了



性别:
帅哥
发帖
89
金币
67
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 5楼 发表于: 2017-12-18


快速回复
限150 字节
 
上一个 下一个