尊敬的:
我无法正确读取 MSP430FR5994的 ADC12。
我在 MSP430FR5994的 ADC12 AN15的输入端使用02电阻器作为分压器。
源极电压:0至16V
R1:13k
R2:2k4
ADC 分辨率:12位(0至4096)
VREF:2.5V 内部
模拟7.90V 的源电压时、ADC 输入电压应为1.231V、ADC 读数仅= 29。 其中该值必须为 ADC = 2015。
符号存储器
本地 数据 变量 值 类型
0x001D6E 0x001D ADC_AN15 29 无符号整型
我是否执行了一些配置错误? 有人能告诉我应该怎么做吗?
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Definição da Porta P3 como Leitura do Canal Analógicos ó n AN15 //
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
P3SEL0 |=(ADC15);// P3.2 e P3.3选项选择 P3SEL0 = 1 // Habilita o ADC12 dos Canais AN14 P3.2 e AN15 P3.3
P3SEL1 &=~(ADC15);// P3.2 e P3.3选项选择 P3SEL1 = 0 // Selectiona Módulo Primário 舒适 Tabela I/O 功能选择= 0 | 1
//默认情况下,REFMSTR=1 => REFCTL 用于配置内部基准
while (REFCTL0 & REFGENBUSY);//如果 ref 发生器忙、请等待
REFCTL0 |= REFVSEL_2 | REFON;// Habilita e Selectiona Referência Ω Interna REF = 2.5V
//配置 o 注册人 do Conversor ADC12
ADC12CTL0 = 0;// Zera o Registrador do Conversor ADC12
ADC12CTL1 = 0;
ADC12MEM0 = 0;// Reseta A Memória DO ADC12
ADC_AN15 = 0;// Reseta A Variável ADC_AN15
ADC12CTL0 = ADC12ON + ADC12SHT0_10;//千兆 o ADC e Attiva 512个 ADC12CLK 周期
ADC12CTL1 = ADC12SHP;// utilizar temporizador de amostragem
ADC12CTL2 |= ADC12RES_2;// resultado de conversão de 12位
ADC12MCTL0 = ADC12INCH_15 + ADC12VRSEL_1;// AN15 ADC 输入选择、Vref = 2.5V
while (! (REFCTL0 & REFGENRDY));//等待基准发生器 稳定
for (volatile unsigned int i = 0x3600;i;i-);// Ataso para o Nova Inicialização de Conversão ó n do ADC12
// Efetua UMA Leitura do ADC12 AN15 P3.3
ADC12CTL0 |= ADC12ENC;// Habilitya Conversão Ω DO ADC12
ADC12CTL0 |= ADC12SC;//尼西亚 a Conversão í a do ADC12
// Aguarda t é rmino da Conversão ó n ADC12
while (ADC12CTL1和 ADC12BUSY)// Conversão 范围?
{
___ no_operation ();// Não FAZ NADA
}
ADC_AN15 = ADC12MEM0 & 0x0FFF;// Carrega Variável com 值执行 ADC12 AN15 P3.3