[技术求助] ADC12使用的出现一个莫名奇妙的问题

[复制链接]
2473|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左右是什么意思,为什么会这样
firstblood 发表于 2015-7-15 21:14 | 显示全部楼层
IO口内部的上拉电阻的使用没?看看吧。。
smilingangel 发表于 2015-7-18 14:29 | 显示全部楼层
那就先把AD的输入端的接上GND的试试看的呗
旗木卡卡s 发表于 2015-7-18 14:40 | 显示全部楼层
ADC12CTL0的ADC12ON位是要设为1的吧,被楼主注释掉了
FireRiver9 发表于 2015-7-18 17:41 | 显示全部楼层
模拟地数字地分开,不然可能就会有干扰
尤彼卡 发表于 2015-7-19 23:34 | 显示全部楼层
楼主的问题解决没,IO口内部的上拉电阻是怎么用的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

217

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部