我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 813|回复: 5

stm8s adc使用例子源码

[复制链接]

该用户从未签到

3

主题

2

回帖

0

积分

一级逆天

积分
0

终身成就奖

QQ
发表于 2016-11-13 03:33:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
stm8s adc 的一个例程源码

/******************** (C) COPYRIGHT  风驰iCreate嵌入式开发工作室 ***************************
* 文件名  :adc.c
* 描述    :AD配置函数库   
* 实验平台:iCreate STM8开发板
* 寄存器版本  :V2.0.0
* 作者    :ling_guansheng  QQ:779814207
* 博客    :
* 修改时间 :2012-6-16

* iCreate STM8开发板硬件连接
   STM8的PF0口(也就是ADC2的AIN10)接的是光敏或热敏电阻

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


#include "adc.h"
#include "uart.h"


/**************************************************************************
* 函数名:ADC_conf
* 描述  :ADC模块初始化
* 输入  :无
*
* 输出  :无
* 返回  :无
* 调用  :外部调用
*************************************************************************/
void ADC_conf()
{
   ADC_CR1 = (0<<4)|(1<<1)|(0<<0);    //ADC时钟输入频率为16MHz 这里设置分频系数为2  连续转换模式 先禁止ADC转换      
   ADC_CR2 = (1<<3)|(0<<1);           //设置数据右对齐  禁止扫描模式
  
   ADC_CSR = (0<<5)|(0xa<<0);         //不用外部触发 禁止转换结束中断 设置转换通道为AIN10
   ADC_TDRH = 4;                      //禁止AIN10施密特触发器功能  
   ADC_CR1 |= 1;                      //第一次写1是从低功耗模式唤醒
   ADC_CR1 |= 1;                      //在这一位是1的情况下再次写1启动ADC转换
}

/**************************************************************************
* 函数名:Send_ADC_Value
* 描述  :ADC转换结果显示函数
* 输入  :AD_Value--ADC转换结果值
*
* 输出  :无
* 返回  :无
* 调用  :内部调用
*************************************************************************/
static void Send_ADC_Value(u16 AD_Value)
{
    UART1_SendByte(AD_Value/1000+0x30);
    UART1_SendByte(AD_Value%1000/100+0x30);
    UART1_SendByte(AD_Value%1000%100/10+0x30);
    UART1_SendByte(AD_Value%1000%100%10+0x30);
}

/**************************************************************************
* 函数名:ADC_GetConversionValue
* 描述  :获取ADC转换结果
* 输入  :无
*
* 输出  :无
* 返回  :无
* 调用  :内部调用
*************************************************************************/
uint16_t ADC_GetConversionValue(void)
{
  uint16_t value,temph;        
  uint8_t templ;                  // 定义templ存储低8位数据  temph存储高8位数据
  
  while(!(ADC_CSR & 0x80));           //等待转换完成
  templ = ADC_DRL;
  temph = ADC_DRH;                  //读取ADC转换  在左对齐和右对齐模式下 读取数据的顺序不同  参考STM8寄存器.PDFP371         
  
  value = (unsigned int)(templ | (temph << 8));   //注意是10位的转换精度 value、temph应为unsigned int 变量
  return  value;
}
回复

使用道具 举报

该用户从未签到

276

主题

2675

回帖

6895

积分

二级逆天

积分
6895

社区居民社区劳模原创达人最爱沙发忠实会员终身成就奖优秀斑竹奖

QQ
发表于 2016-11-13 08:26:48 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

1

主题

1434

回帖

134

积分

二级逆天

执着

积分
134

终身成就奖社区居民优秀斑竹奖

QQ
发表于 2016-11-13 09:30:14 | 显示全部楼层
1111
回复

使用道具 举报

该用户从未签到

31

主题

228

回帖

533

积分

二级逆天

积分
533

终身成就奖特殊贡献奖原创先锋奖

QQ
发表于 2016-11-13 18:19:36 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

2

主题

35

回帖

0

积分

一级逆天

积分
0

终身成就奖

QQ
发表于 2017-11-17 17:08:54 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

13

主题

76

回帖

0

积分

1元学习PADS(3期)

积分
0

终身成就奖

QQ
发表于 2017-12-18 11:47:34 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

每日签到,有金币领取。


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

平平安安
TOP
快速回复 返回顶部 返回列表