请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR2433 工具/软件:Code Composer Studio
您好!
我尝试在 MSP430FR2433中进行中断程序、
但它不起作用。
您能检查我的程序吗?
我正在上传程序。
计划:
#pragma vector=port2_vector
_interrupt void Port_2 (void)
{
if (P2IFG 和0x80){
P2IFG &=~0x80;
P3OUT &=~BIT2;
putchar ('a');
Regi_fl = 1;
LPM3_EXIT;
}
#pragma vector=USCI_A1_vector
__interrupt void USCIA1RX_ISR (void)
{
unsigned char 数据;
while (!(UCA1IFG & UCTXIFG)); //使用中断,接收数据,或者中断
数据= UCA1RXBUF;
putchar (data); ////发送数据
REGI_f2 = 1;
LPM3_EXIT;
}
int main (void)
{
WDTCTL = WDTPW | WDTHOLD; //停止看门狗计时器
P2SEL0 |= BIT0 | BIT1; // P2.0:XOUT;P2.1:XI1
_bis_SR_register (SCG0); //禁用 FLL
CSCTL3 |= SELREF_REFOCLK; //将 REFO 设置为 FLL 基准源
CSCTL0 = 0; //清除 DCO 和 MOD 寄存器
CSCTL1 &=~(DCORSEL_7); //首先清除 DCO 频率选择位
CSCTL1 |= DCORSEL_3; //设置 DCO = 8MHz
CSCTL2 = FLLD_0 + 243; // DCODIV = 8MHz
_DELAY_CYCLES (3);
_BIC_SR_register (SCG0); //启用 FLL
while (CSCTL7 &(FLLUNLOCK0 | FLLUNLOCK1));//轮询直到 FLL 被锁定
CSCTL4 = SELMS_DCOCLKDIV | SELA_XT1CLK;//将默认 XT1CLK (~32768Hz)设置为 ACLK 源、ACLK = 32768Hz
//默认 DCODIV 为 MCLK 和 SMCLK 源
PM5CTL0 &=~LOCKLPM5; //禁用 GPIO 上电默认高阻抗模式
//=========================== LED on ========================================================================
P3DIR |= BIT2; //LED
P1DIR |= BIT3;
//========================= 磁铁========================================================================================
P2DIR &=~BIT7; //p7 -磁体、P2DIR &=~BIT7;
P2IES |= BIT7;
//P2IES &=~BIT7; //将 P1.3配置为从低到高的转换。 //也尝试使用这个
P2IE |= BIT7;
P2IFG &=~BIT7;
UART_1 ();
while (1)
{
_bis_SR_register (LPM3_bits | GIE);
if (regi_fl >0)
{
Regi_fl = 0; ////配对工作正常
P3OUT |= BIT2;
}
if (regi_f2 >0)
{
REGI_f2 = 0;
// P3OUT |= BIT2;
}
}
void UART_1 ()
{
P2SEL0 |= BIT5|BIT6; // P6.5、6 = USCI_A0 RXD/TXD
UCA1CTLW0 |= UCSWRST;
UCA1CTLW0 |= UCSSEL_SMCLK;
UCA1BR0 = 52; // 800000000 / 16/9600
UCA1BR1 = 0x00;
UCA1MCTLW = 0x4900 | UCOS16 | UCBRF_1;
UCA1CTLW0 &=~UCSWRST; //初始化 eUSCI
UCA1IE |= UCRXIE; //启用 USCI_A0 RX 中断
}
void putchar (unsigned char 数据)
{
while (!(UCA1IFG&UCTXIFG));
UCA1TXBUF =数据;
}
请您检查一下。
我只是想知道,为什么中断不起作用?
此致、
Srijit