单片机 > 单片机程序设计 > 详情

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

发布时间:2020-08-21 发布时间:
|

#include   


/*

    关于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)

{


}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
PIC单片机基础知识之二