Quantcast
Channel: MSP 低功耗微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 3634

MSP430F149 关于UART0与UART1的同时使用

$
0
0
因为需要我想使用PC传数据给串口0,串口0再给串口1,由串口1发出给外设。因为实现不了功能所以我就弄了下面这个测试程序,单独测试串口0与串口1。发现只有串口0可以把PC发来数据传回PC,而串口1却不能。所以很疑惑,我最近两天才接触MSP430,麻烦大侠能告诉我原因。
#include  <msp430x14x.h>

void UART0_Init(void);
void UART1_Init(void);


void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;           
  UART0_Init();
  UART1_Init();
  while(1);
}

void UART0_Init(void)
{
  P3SEL |= BIT4;
  P3SEL |= BIT5;
  P3DIR |= BIT4;
  ME1 |= UTXE0 + URXE0;                   
  UCTL0 |= CHAR;                            
  UTCTL0 |= SSEL0;                         
  UBR00 = 0x03;                           
  UBR10 = 0x00;                            
  UMCTL0 = 0x4A;                        
  UCTL0 &= ~SWRST;                        
  IE1 |= URXIE0;                        

  _BIS_SR(LPM3_bits + GIE);             
}

#pragma vector=USART0RX_VECTOR
__interrupt void usart0_rx (void)
{
  _BIS_SR(GIE);
  while (!(IFG1 & UTXIFG0));              
  TXBUF0 = RXBUF0;                        
}

void UART1_Init(void)
{
  P3SEL |= BIT6;                           
  P3SEL |= BIT7;
  P3DIR |= BIT6;
  ME2 |= UTXE1 + URXE1;              
  UCTL1 |= CHAR;                       
  UTCTL1 |= SSEL0;                      
  UBR01 = 0x03;                   
  UBR11 = 0x00;                        
  UMCTL1 = 0x4A;                         
  UCTL1 &= ~SWRST;                       
  IE2 |= URXIE1;                 

  _BIS_SR(LPM3_bits + GIE);              
}

#pragma vector=USART1RX_VECTOR
__interrupt void usart1_rx (void)
{
  while (!(IFG2 & UTXIFG1));           
  TXBUF1 = RXBUF1;                    
}

Viewing all articles
Browse latest Browse all 3634

Trending Articles