[资料分享] MSP430串口接收程序(使用中断)

灞波儿奔   2020-11-13 11:53 楼主

使用接收中断,将接收到的字符再发送出去。每次接收到字符之后都会退出低功耗模式,从而在主函数中将接收到的字符再发送出去。
/**********************************************  
*程序描述:单片机的P3.4、P3.5作为串口接收字符,将接受到的字符再发送出去 

***********************************************/
#include  <msp430x14x.h>
void usartInit(void);                       //串口初始化
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  usartInit();
  while(1){
  _BIS_SR(LPM3_bits + GIE);                 // Enter LPM3 w/ interrupt
  while((UTCTL0&TXEPT)==0);//等待数据发送完毕   
   TXBUF0 = RXBUF0;                          // RXBUF0 to TXBUF0
  }
}
 
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
   LPM3_EXIT;
}
/****************************************************************************  
*函数名: uartInit()                                                          /  
*作用  :USART0的初始化配置,使用P3.4和P3.5,使用接收中断                      /  
*返回值:无                                                                  /  
*参数  :无                                                                  /  

*****************************************************************************/  
void usartInit(){
  P3SEL |= 0x30;                            // P3.4,5 = USART0 TXD/RXD
  ME1 |= UTXE0 + URXE0;                     // Enable USART0 TXD/RXD
  UCTL0 |= CHAR;                            // 8-bit character
  UTCTL0 |= SSEL0;                          // UCLK = ACLK
  UBR00 = 0x03;                             // 32k/9600 - 3.41
  UBR10 = 0x00;                             //
  UMCTL0 = 0x4A;                            // Modulation
  UCTL0 &= ~SWRST;                          // Initialize USART state machine
  IE1 |= URXIE0;                            // Enable USART0 RX interrupt
 
}

 

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复