#include <msp430x14x.h>
void main(void)
{
P6DIR |= BIT2;P6OUT |= BIT2; //關電平轉換
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P3SEL |= 0x30; // P3.4,5 = USART0 TXD/RXD (選擇IO口模式)
ME1 |= UTXE0 + URXE0;// USART0 transmit enable
UCTL0 |= CHAR; // 8-bit character
UTCTL0 |= SSEL0;
UBR00 = 0x03; // 32k/9600 - 3.41
UBR10 = 0x00; //
UMCTL0 = 0x4A; // 波特率9600
UCTL0 &= ~SWRST; // Initialize USART state machine
IE1 |= URXIE0; // Enable USART0 RX interrupt
// Mainloop
for (;;)
{
_BIS_SR(LPM3_bits + GIE);
while (!(IFG1 & UTXIFG0));// USART0 TX buffer ready?
TXBUF0 = RXBUF0; // RXBUF0 to TXBUF0
}
}
// UART0 RX ISR will for exit from LPM3 in Mainloop
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
_BIC_SR_IRQ(LPM3_bits); // Clear LPM3 bits from 0(SR)
}
問題描述:該代碼先配置串口,然后進入主回圈,進入lpm3(cup休眠了)并打開全域中斷,此時只有等待中斷請求才會繼續執行下面的代碼,我的問題是:中斷請求從哪里來(發生中斷的理由是什么?),因為這段代碼只打開了中斷,但并沒有打開定時器啊。
單片機型號:msp430f149
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/267755.html
標籤:新技術前沿
