This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430F5437 里有ADC10模块吗?为什么用了寄存器统统找不到?急

Other Parts Discussed in Thread: MSP430F5437, MSP430F5438

我最近刚用MSP430F5437  用的IAR  ,c语言编程;

头文件加载

#include "msp430x54x.h"

void adc10_config(void) 

// 只有在ADC12ENC复位的情况下才可以操作 
// ADC12SHT1X ADC12SHT0X ADC12MSC ADC12REF2_5V ADC12REFON ADC12ON 
ADC10CTL0 &= ~ADC10ENC; 

// 设置采样保持时间,最大时间周期以提高转换精度 
// 注意MSP430F5438没有REF模块,片内基准无效 
// 操作ADC12REF2_5V ,ADC12REFON并无意义 
ADC10CTL0 = ADC10SHT0_15 + ADC10SHT1_15 + ADC10ON + ADC10MSC; 
// ADC12CTL0 = ADC12SHT0_15 + ADC12SHT1_15 + ADC12ON + 
// ADC12REF2_5V + ADC12REFON; 
// 采样保持脉冲来自采样定时器 
ADC10CTL1 = ADC10SHP + ADC10CONSEQ_2; 
// 关闭内部内部温度检测以降低功耗,注意或操作否则修改转换精度 
ADC10CTL2 |= ADC10TCOFF ; 
// 基准电压选择AVCC,并选择11通道——(AVCC-AVSS)/2 
// ADC12MCTL0 = ADC12SREF_0 + ADC12INCH_11; 
ADC10MCTL0 = ADC10SREF_0 + ADC10INCH_4; 

__delay_cycles(75); 
// ADC12使能 
ADC10CTL0 |= ADC10ENC; 
ADC10CTL0 |= ADC10SC; // 启动转换

}

之前用的ADC12可以,直接把 寄存器改成ADC10   不知道为什么报错:

Error[Pe020]: identifier "ADC10MEM0" is undefined E:\pro\MSP430\5437-PRO2-adc10\main.c 89 
Error[Pe020]: identifier "ADC10CTL0" is undefined E:\pro\MSP430\5437-PRO2-adc10\main.c 207 
Error[Pe020]: identifier "ADC10ENC" is undefined E:\pro\MSP430\5437-PRO2-adc10\main.c 207 
Error[Pe020]: identifier "ADC10SHT0_15" is undefined E:\pro\MSP430\5437-PRO2-adc10\main.c 212 
Error[Pe020]: identifier "ADC10SHT1_15" is undefined E:\pro\MSP430\5437-PRO2-adc10\main.c 212 
Error[Pe020]: identifier "ADC10ON" is undefined E:\pro\MSP430\5437-PRO2-adc10\main.c 212 
Error[Pe020]: identifier "ADC10MSC" is undefined E:\pro\MSP430\5437-PRO2-adc10\main.c 212 
Error[Pe020]: identifier "ADC10CTL1" is undefined E:\pro\MSP430\5437-PRO2-adc10\main.c 216 
Error[Pe020]: identifier "ADC10SHP" is undefined E:\pro\MSP430\5437-PRO2-adc10\main.c 216 
Error[Pe020]: identifier "ADC10CONSEQ_2" is undefined E:\pro\MSP430\5437-PRO2-adc10\main.c 216 
Error[Pe020]: identifier "ADC10CTL2" is undefined E:\pro\MSP430\5437-PRO2-adc10\main.c 218 
Error[Pe020]: identifier "ADC10TCOFF" is undefined E:\pro\MSP430\5437-PRO2-adc10\main.c 218 
Error[Pe020]: identifier "ADC10MCTL0" is undefined E:\pro\MSP430\5437-PRO2-adc10\main.c 221 
Error[Pe020]: identifier "ADC10SREF_0" is undefined E:\pro\MSP430\5437-PRO2-adc10\main.c 221 
Error[Pe020]: identifier "ADC10INCH_4" is undefined E:\pro\MSP430\5437-PRO2-adc10\main.c 221 
Error[Pe020]: identifier "ADC10SC" is undefined E:\pro\MSP430\5437-PRO2-adc10\main.c 226 
Error while running C/C++ compiler

  • 楼主,

      ADC10和ADC12是我们MSP430里面的两个不同的ADC IP核。有些产品是支持ADC10, 有的是ADC12。并不是两个都同时支持。

    对于MSP430F5437来说,它支持的是ADC12, 所以如果你把它改成ADC10的寄存器定义,这个就会报错了。因为头文件里没有相关的定义。

    谢谢