MSP430F4152串口操作

/**********************************************************************/ 
 /*

  名称:串口通讯 

    功能:将接到的数据组后原封不动的发送出去 

*/ 
/**********************************************************************/ 

#include  <msp430x41x2.h> 

unsigned char i,ii,n; 
unsigned char RX[20]={0}; 

void UART_init() 


  P6SEL |= BIT5+BIT6;                       // P6.5,6 = USCI_A0 RXD/TXD   

  UCA0CTL1 |= UCSSEL_1;                     // CLK = ACLK   

  UCA0BR0 = 0x03;                           // 32k/9600 - 3.41   

  UCA0BR1 = 0x00;                           // 

  UCA0MCTL = 0x06;                          // Modulation 

  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**   

  IE2 |= UCA0RXIE;                          // Enable USCI_A0 RX interrupt   

  IE2 &= ~UCA0TXIE; 

}

 

 

void Iint_Port1(void)//端口P1_4和P1_5中断 

  P1DIR&=~BIT5; //设置为输入方向P1_4 

  P1SEL&=~BIT5; //设置为普通I/O口功能

  P1IES&=~BIT5; //选择上升沿触发 

  P1IE|=BIT5; //打开中断允许 

  P1IFG&=~BIT5; //P2IES的切换可能使P1IFG.4置位,需清除

  _EINT(); 

/

void main(void) 

{

  WDTCTL = WDTPW+WDTHOLD;                   // Stop WDT   

  FLL_CTL0 |= XCAP14PF;                     // Configure load caps   

  Iint_Port1();   

  UART_init(); 

  _BIS_SR(LPM3_bits + GIE);                 // Enter LPM0, interrupts enabled 


 

#pragma vector=USCIAB0RX_VECTOR 

__interrupt void USCIA0RX_ISR (void) 

{  
  RX[i] = UCA0RXBUF;

  i++; 

  if(RX[i-1]==0x68)    

  {     

    n=i;

    i=0;    

  } 

}

 

#pragma vector = PORT1_VECTOR //外部中断中断入口 

__interrupt void P1_ISR(void) 

{

  if(P1IFG&BIT5) 

  { 

    P1IFG&=~BIT5; //多源中断,需靠软件清除P1IFG.5  

    for(ii=0;ii<n;ii++) //发送8个数据

    { 

      UCA0TXBUF=RX[ii];

      while(!(IFG2&UCA0TXIFG)); 

    } 

  } 

}

转载于:https://www.cnblogs.com/cloudstep/p/5657873.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值