打印
[技术求助]

ADC12使用的出现一个莫名奇妙的问题

[复制链接]
2166|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aaa2742|  楼主 | 2015-7-3 14:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用msp430f5529的P6.4管脚,模拟输入A4,现在初始化后,使用ADC转换,即便A4无输入(实际也测量为0左右)采集回来的AD值在2000左右,感觉初始化代码没问题的。
//#include <msp430.h>
#include <msp430f5529.h>
#include "Adc.h"

/**********************************************************************
* 函数名称:void ADC12Init()
* 功能描述:12bit adc 初始化
* 输入参数:
* 返回值:
* 其它说明:无
***********************************************************************/
void ADC12Init()
{
//        P6SEL |= 0x10;
//        //ADC12CTL0 = ADC12ENC+ADC12ON+ADC12MSC+ADC12SHT0_8;
//        //ADC12CTL1 = ADC12SHP+ADC12CONSEQ_2;//单通道循环
//        ADC12CTL0 = ADC12SHT02 + ADC12ON;         // Sampling time, ADC12 on
//          ADC12CTL1 = ADC12SHP+ADC12CSTARTADD_4;                     // Use sampling timer
//    ADC12IE = 0x10;                           // Enable interrupt
//    ADC12CTL0 |= ADC12ENC;
//        ADC12CTL2 |= ADC12RES_2;
//        ADC12MCTL4 = ADC12INCH_4;//Pin6.4引脚 通道4
//        //ADC12IE = 0x10;
//        //ADC12CTL0 |= ADC12SC;
       
        ADC12CTL0 &= ~ADC12ENC;
        P6SEL |= 0x10;
        ADC12CTL1 = ADC12CSTARTADD_4+ADC12SHP+ADC12DIV0+ADC12SSEL_3;
        //ADC12CTL1 = 0x4238;
        //ADC12CTL2 = 0x00A0;
        ADC12CTL2 = ADC12TCOFF+ADC12RES_2;
        //ADC12MCTL4 = 0x04;
        ADC12MCTL4 = ADC12INCH_4;
        ADC12CTL0 = ADC12SHT0_2 + ADC12ON + ADC12ENC;
       

       
}
/**********************************************************************
* 函数名称:int GetADCValue()
* 功能描述:
* 输入参数:
* 返回值: AD转换的数值
* 其它说明:无
***********************************************************************/
int GetADCValue()
{
       
        int res = 0;
        ADC12CTL0 |= ADC12SC;
        while (!(ADC12IFG & BIT4));
        res = ADC12MEM4;
        ADC12CTL0 &= ~ADC12SC;
        return res;


}
请大家指导,问题出的莫名奇妙

相关帖子

沙发
airwill| | 2015-7-4 06:29 | 只看该作者
这么奇怪的问题?
首先想到的 VREF 问题, 不管 VREF 引起这样的问题可能性也不大.
要不, 模拟端口设置弄错了?

使用特权

评论回复
板凳
309030106| | 2015-7-12 21:42 | 只看该作者
没有输入,怎么能采来值呢

使用特权

评论回复
地板
尤彼卡| | 2015-7-12 22:30 | 只看该作者
采集回来的AD值在2000左右是什么意思,为什么会这样

使用特权

评论回复
5
firstblood| | 2015-7-15 21:14 | 只看该作者
IO口内部的上拉电阻的使用没?看看吧。。

使用特权

评论回复
6
smilingangel| | 2015-7-18 14:29 | 只看该作者
那就先把AD的输入端的接上GND的试试看的呗

使用特权

评论回复
7
旗木卡卡s| | 2015-7-18 14:40 | 只看该作者
ADC12CTL0的ADC12ON位是要设为1的吧,被楼主注释掉了

使用特权

评论回复
8
FireRiver9| | 2015-7-18 17:41 | 只看该作者
模拟地数字地分开,不然可能就会有干扰

使用特权

评论回复
9
尤彼卡| | 2015-7-19 23:34 | 只看该作者
楼主的问题解决没,IO口内部的上拉电阻是怎么用的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

216

帖子

1

粉丝