MSP430 串口初始化,及串口操作

#include  <msp430x14x.h> 

/*
    关于UART0串口的配置,及操作函数说明
*/

/* 一、uart0初始化*/ 
void uart0_idev_init(void)
{
        P3SEL  |= BIT4  + BIT5;     // 1. 选择P3.4和P3.5做UART0通信端口
        ME1    |= UTXE0 + URXE0;    // 2. 使能USART0的发送和接受
        UCTL0  |= CHAR;             // 3. 选择8位字符

        UTCTL0 |= SSEL0;            // 4. 选择时钟源, ACLK :SSEL0
                                    //               SMCLK : SSEL1

        UBR00   = 0x03;             // 5. 波特率  32767HZ: 9600
        UBR10   = 0x00;             //
        UMCTL0  = 0x4A;             //   Modulation
        UCTL0  &= ~SWRST;           // 6. 初始化UART状态机
        IE1    |= URXIE0;           // 7. 使能USART0的接收中断
}


/* 二、uart0发送一个byte*/
void uart0_send_byte(BYTE dat)
{

    while (!(IFG1 & UTXIFG0));                // USART0 TX buffer ready?
    TXBUF0  = dat;
}

/* 三、从 uart0 RXBUF0中读取一个byte*/
INT8U uart0_rec(void)
{
    return RXBUF0;
} 

/* 四、uart1串口中断处理函数*/
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{

}



/*
    关于UART2串口的配置,及操作函数说明
*/

/* 一. uart1初始化*/
void uart1_idev_init(void)
{
  P3SEL  |= BIT6 + BIT7;     // 1. 将P3.6,P3.7选做UART1的通信端口
  ME2    |= UTXE1 + URXE1;   // 2. 使能USART0的发送和接受
  UCTL1  |= CHAR;            // 3. 选择8位字符

  UTCTL1 |= SSEL0;            // 4. 选择时钟源, ACLK :SSEL0
                              //              SMCLK : SSEL1

  UBR01     = 0x03;           // 5. 波特率  32767HZ: 9600
  UBR11     = 0x00;           //
  UMCTL1    = 0x4A;           // Modulation
  UCTL1    &= ~SWRST;         // 6. 初始化UART状态机
  IE2    |= URXIE1;           // 7. 使能USART1的接收中断
}

/* 二、uart1发送一个byte*/
void uart1_send_byte(BYTE dat)
{

    while (!(IFG2 & UTXIFG1));      // USART0 TX buffer ready?
    TXBUF1  = dat;
}

/* 三、从 uart1 RXBUF1中读取一个byte*/
INT8U uart1_rec(void)
{
    return RXBUF1;
} 

/* 四、uart1串口中断处理函数*/
#pragma vector=UART1RX_VECTOR
__interrupt void usart1_rx (void)
{

}
  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值