?? 3_7.c
字號:
#include <msp430x14x.h>
void main(void)
{
unsigned int i;
WDTCTL = WDTPW + WDTHOLD; // 停止看門狗
BCSCTL1 |= XTS; // ACLK使用高頻晶體
do
{
IFG1 &= ~OFIFG; // 清除OSCFault標志
for (i = 0xFF; i > 0; i--);
}
while ((IFG1 & OFIFG) == OFIFG); // 如果OSCFault =1
BCSCTL2 |= SELM1+SELM0; // MCLK = LFXT1 (safe)
UCTL0 = CHAR; // 8-bit 字符
UTCTL0 = SSEL0; // UCLK = ACLK
UBR00 = 0x45; // 在8MHz下進行 115200波特率通信
UBR10 = 0x00; // 在8MHz下進行 115200波特率通信
UMCTL0 = 0x00; // 調整寄存器
ME2|= UTXE0 + URXE0; // 使能 USART0 TXD/RXD
IE2|= URXIE0; // 使能 USART0 RX 中斷
P3SEL |= 0x30; // P3.4,5 = USART0 TXD/RXD
P3DIR |= 0x10; // P3.4 為輸出
_EINT(); // 開總中斷
while(1)
{
_BIS_SR(CPUOFF); // 低功耗,如果有接收到數據,則接收中斷處理
_NOP();
}
}
interrupt[UART0RX_VECTOR] void usart0_rx (void)
{
while ((IFG2 & UTXIFG0) == 0); // USART0 TX 接收緩存有數據?
TXBUF0 = RXBUF0; // RXBUF0 to TXBUF0讀出接收到的數據
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -