工具/软件:TI C/C++编译器
我使用 MSP-EXT430FR2355 来实现 ADC 并转换 来自 UART 的数据。
调试时,始终收到 警告,通知我程序 无法执行。
警告:CPU 关闭(低功耗模式)并且中断被禁用! 无法执行 Step/Go。
我的计划是:
#include "msp430fr2355.h"
unsigned int ADvalue;
unsigned char a[2];
void ADC12Init (void);
空 UART0Init (空);
void main (void)
{
WDTCTL = WDTPW+WDTHOLD;
CSCTL3 |= SELREF_XT1CLK;//将 XT1设置为 FLL 基准源
CSCTL0 = 0;//清除 DCO 和 MOD 寄存器
CSCTL1 = DCORSEL_5;//设置 DCO = 16MHz
CSCTL2 = FLLD_0 + 487;// DCOCLKDIV = 16MHz、16000000 / 32768-1=487
CSCTL4 = SELMS_DCOCLKDIV | SELA_XT1CLK;//将 XT1 (~32768Hz)设置为 ACLK 源、ACLK = 32768Hz
ADC12Init();
UART0Init();
_EINT();
while (1)
{
ADCCTL0 |= ADCENC | ADCSC;//采样和转换启动
UCA0TXBUF = A[1];
UCA0TXBUF = A[0];
}
}
空 ADC12初始化(空)
{
ADCCTL0 &=~ADCENC;
ADCCTL0 = ADCON;
ADCCTL1 = ADCCONSEQ_0+ADCSHP+ADCSSEL_0;
ADCCTL2 = ADCRES_2;
ADCMCTL0=ADCINCH_0+ADCSREF_0;
ADCIE =ADCIE0;
ADCCTL0 |= ADCENC;
}
空 UART0Init (空)
{
//配置 UART 引脚
P1SEL0 |= BIT6 | BIT7;//将2个 UART 引脚设置为第二功能(1.7TXD、1.6RXD)
//配置 UART
UCA0CTLW0 |= UCSWRST;
UCA0CTLW0 |= UCSSEL_SMCLK;
UCA0CTLW0 =UCSPB_0+UC7BIT_0;//8位传输、1位停止
UCA0BR0 = 0x8a;// 16000000/115200
UCA0BR1=0x0E;
UCA0MCTLW = UCBRS0;
UCA0IE |= UCTXIE0;
UCA0CTLW0 &=~UCSWRST;//初始化 eUSCI
}
#pragma vector=ADC_vector
_interrupt void ADC (void)
{
开关(ADCIV)
{
案例 ADCIV_0:break;
案例 ADCIV_2:break;
案例 ADCIV_4:break;
案例 ADCIV_6:中断;
案例 ADCIV_8:中断;
case ADCIV_10:break;
ADCIV_12案例:
ADvalue =ADCMEM0;
A[0]= ADValue&0xFF;
A[1]=(ADvalue>8)&0xFF;
ADCCTL0 |=ADCSC;
默认:中断;
}
}
请帮助我、谢谢!