独闷闷网

 找回密码
 立即注册
搜索
查看: 7141|回复: 3
打印 上一主题 下一主题
收起左侧

[原创] stm8 ADC的使用

[复制链接]
跳转到指定楼层
楼主
发表于 2015-3-29 22:36:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
今天分享的内容是stm8ADC使用方法。
Stm8s103f3p6ADC寄存器有很多。但很多初学者要使用ad时不知道到设置哪个寄存器,
其实stm8ADC的单通道采集只要ADC_CR1,ADC_CR2ADC_CSR三个寄存器就可以搞定了;
具体这三个寄存器每一位是干嘛的请看参考手册,配置方法看代码:
/****************************
ADC初始化
***************************/
void ADC_Init(void)
{
        ADC_CR1 = 0X00; //不分频禁止使能ADC
        ADC_CR2 = 0X30; //左对齐
        ADC_CR1 |=0X01; //唤醒
}
unsigned int ReadADC(unsigned int AIN)
{
        unsigned int i = 0;
        ADC_CSR = AIN;
        ADC_CR1 |=0X01; //开始转换
        while(!(ADC_CSR&0X80)); //等待转换结束
        ADC_CSR &=0X7F; //清零转换结束标志位
        i = (unsigned int)ADC_DRH; //ADC的值
        i = i<<2;
        i += (unsigned int)ADC_DRL;
        return (i); //把读到的值返回
}
要使用ADC时先初始化ADC_Init();循环中读ReadADC(这里写要采集的AD通道)

乐于分享,勇于质疑!
沙发
发表于 2015-3-29 22:45:07 | 只看该作者
你做的既是笔记,也是教程。感谢分享。
乐于分享,勇于质疑!
板凳
发表于 2015-3-30 14:51:08 | 只看该作者
为什么楼主的所有变量都定义为int型???
乐于分享,勇于质疑!
地板
发表于 2015-10-11 15:30:04 | 只看该作者
楼主ADC中断如何实现,是否尝试过?
乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2024-4-20 08:13 , Processed in 0.156507 second(s), 17 queries .

快速回复 返回顶部 返回列表