msp430f149串口问题

2019-07-25 15:07发布

最近一直被这个问题困扰,串口发送不了数据,拿到示波器上看,串口输出是正弦波,希望大家帮忙看看是程序有问题吗?
  1. #include  <msp430f149.h>
  2. unsigned char shuju;
  3. #define DGUS_HEAD        0x5AA5
  4. int LocalColorNum = 0;

  5.     void TS_SendChar(unsigned Chr)
  6.     {

  7.       shuju = Chr;
  8.       _BIS_SR(LPM3_bits + GIE);                 // Enter LPM3 w/interrupt

  9.     }

  10.     void SendByte(int cont)
  11.     {
  12.             //WaitForTxBufEmpty
  13.             TS_SendChar((unsigned char)cont);
  14.     }
  15.     void SendWord(int cont)
  16.     {

  17.             SendByte(cont >> 8);
  18.             SendByte(cont & 0x00FF);
  19.     }
  20.     void EndSend(void)
  21.     {
  22.             ;
  23.     }


  24. void main(void)
  25. {
  26.   WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  27.   P3SEL = 0x30;                            // P3.4,5 = USART1 TXD/RXD
  28.   U0CTL |= SWRST;
  29.   ME1 |= UTXE0 + URXE0;                     // Enable USART0 TXD/RXD
  30.   U0CTL |= CHAR;
  31.   U0TCTL |= SSEL1;                     //ACLK

  32.   U0BR1 = 0x03;                             // 32k/9600 - 3.41
  33.   U0BR0 = 0x00;                             //
  34.   U0MCTL=0x4A;

  35.   U0CTL &= ~SWRST;                            // Initialize USART state machine
  36.   IE1 |= UTXIE0;                           // Enable USART0 RX interrupt

  37.   _BIS_SR( LPM3_bits +GIE);                 // Enter LPM3 w/ interrupt
  38.   while(1)
  39.   {
  40.            SendWord(DGUS_HEAD);
  41.            SendWord(0x00FF);
  42.            SendWord(0x0582);
  43.            SendWord(LocalColorNum);
  44.            EndSend();

  45.   }
  46. }

  47. #pragma vector=USART0TX_VECTOR
  48. __interrupt void usart0_tx (void)
  49. {
  50. // while (!(IFG1 & UTXIFG0));                // USART0 TX buffer ready?
  51.   U0TXBUF = shuju;                    
  52.   IFG1 &= ~UTXIFG0;                         // Clear inital flag on POR
  53. }
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。