#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)
{
}
时间: 2024-10-28 16:07:40