5438A 中不支持 ADC12 使用 REFMSTR=1模式。 但是在程序中使用REFMSTR=1模式也能得到正确的电压值 不知道为什么?
程序如下:
#include "msp430f5438a.h"
#define uchar unsigned char
#define uint unsigned int
void Adc12()
{
P6SEL |= BIT5; // 选择P6.5作为模拟信号的输入端
ADC12CTL0 = ADC12ON; // 使能转换模块
REFCTL0|=REFMSTR+REFVSEL_2+REFON;
//使能REF管理,内部参考电压选择2.5v、打开内部参考电压
ADC12CTL1 = ADC12SHP;// // 选择脉冲触发模式、单通道单次次转换模式
ADC12MCTL0= ADC12SREF_1+ADC12INCH_5; //选择参考电压源、现在a5通道
ADC12CTL0 |= ADC12ENC; // 使能转换模块
for ( uchar i=0; i<0x30; i++);
ADC12CTL0 |= ADC12SC; // 开始转换
while ((ADC12CTL1 & ADC12BUSY));
uint Average= ADC12MEM0; //观察Average
Average=Average-1;
}
void main()
{
Adc12();
}
如下图 : |