📄 code.c
字号:
#include <msp430x14x.h>
void InitBcs(void);
void InitUART1(void);
void main(void)
{
InitBcs();
InitUART1();
_EINT();
_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
}
#pragma vector=UART1RX_VECTOR
__interrupt void usart1_rx (void)
{
while (!(IFG2 & UTXIFG1));
TXBUF1 = RXBUF1; // RXBUF0 to TXBUF0
}
void InitBcs(void)
{
unsigned int i;
WDTCTL=WDTPW+WDTHOLD; //关闭关门狗
_BIS_SR(OSCOFF);
BCSCTL1&=~XT2OFF; //XT2开启 //启动XT2振荡器,
BCSCTL1 |= RSEL0+RSEL1+RSEL2; // 选择最高不标称频率
DCOCTL = 0xE0; //DCOCLK频率最高,不利用MOD进行调整
do
{
IFG1 &= ~OFIFG; // Clear OSCFault flag
for(i=0xFF;i>0;i--); // Time for flag to set
}
while((IFG1 & OFIFG) == OFIFG); // OSCFault flag still set?
_NOP();
BCSCTL2 |= SELS+DIVS_2; //SMCLK SOURCE XT2/4=460.8KHz
}
void InitUART1(void)
{
P3SEL |= BIT6+BIT7; // P3.6,7 = USART1 TXD/RXD
U1CTL |= SWRST;
U1CTL |= CHAR; // 8-bit character
U1TCTL |= SSEL1; // UCLK = ACLK
U1BR0 = 0x30; // 32k/9600 - 3.41
U1BR1= 0x00; //
U1MCTL = 0x00; // Modulation
U1CTL &= ~SWRST; // Initialize USART state machine
ME2 |= UTXE1 + URXE1; // Enable USART0 TXD/RXD
IE2 |= URXIE1; // Enable USART0 RX interrupt
//IFG2 &= ~UTXIFG1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -