资源简介

可用串口助手进行调试,适用于初学msp430 单片机串口通信的人。

资源截图

代码片段和文件信息

#include  

//////////////////////////////
// 常量定义         //
//////////////////////////////

// 1s软件定时器溢出值,200个5ms
#define V_T1s 200

//////////////////////////////
// 变量定义         //
//////////////////////////////

// 1s软件定时器计数
unsigned char clock1s=0;
// 1s软件定时器溢出标志
unsigned char clock1s_flag=0;

// 指示灯驱动信号输出缓存
unsigned char led1_redled2_green;

// 测试用计数器
unsigned int test_counter=0;
// 测试用计数值十进制表示
unsigned char digi[4]={0000};


void port_init(void)
{
    P1DIR |= BIT0+BIT6;      // P1.0、P1.6 output

}

//TIMER0 initialize -
// desired value: 5ms
void timer0_init(void)
{
// Configure Timer0
TA0CTL = TASSEL_2 + MC_1 ;          // 定时器0时钟: SMCLK=1MHz UP mode
TA0CCR0 = 5000;                 //计满 5000 一次中断   ,5 ms
CCTL0 = CCIE;                   //CCR0 interrupt enabled
}

// Timer0_A0 interrupt service routine
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer0_A0 (void)
{
// 1秒钟软定时器计数
if (++clock1s>=V_T1s)
{
clock1s_flag = 1; //当1秒到时,溢出标志置1
clock1s = 0;
     }

if (led1_red==1)
    P1OUT &= ~ BIT0; //红灯亮
else
P1OUT |=  BIT0;  //红灯灭

if (led2_green==1)
    P1OUT &= ~ BIT6;  //绿灯亮
else
P1OUT |=  BIT6;   //绿灯灭
}


void uart_init(void)
{
P1SEL |= BIT1 + BIT2 ;                     // P1.1 = RXD P1.2=TXD
P1SEL2 |= BIT1 + BIT2 ;                     // P1.1 = RXD P1.2=TXD
UCA0CTL1 |= UCSSEL_2;                     // uart时钟: SMCLK=1MHz
UCA0BR0 = 104;                            // 设置波特率:9600
UCA0BR1 = 0;                              // 设置波特率:9600
UCA0MCTL = UCBRS0;                        // Modulation UCBRSx = 1
UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
IE2 |= UCA0RXIE;                          // Enable USCI_A0 RX interrupt
}

//  uart串口RX接收到一个字符产生中断处理
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
     switch (UCA0RXBUF)
   {
   case ‘1‘: led1_red=0;
   break;

   case ‘2‘: led1_red=1;
   break;

   case ‘3‘: led2_green=0;
   break;

   case 

评论

共有 条评论