[求助] f5529 uart 無法傳值

s87402   2015-10-20 22:05 楼主
更改官方(iar)code
但終端機無法收到f5529傳的值
想請教各位大大問題點在哪裡??
#include

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  P3SEL = BIT3+BIT4;                        // P3.4,5 = USCI_A0 TXD/RXD
  UCA0CTL1 |= UCSWRST;                      // **Put state machine in reset**
  UCA0CTL1 |= UCSSEL_1;                     // CLK = ACLK
  UCA0BR0 = 0x03;                           // 32kHz/9600=3.41 (see User's Guide)
  UCA0BR1 = 0x00;                           //
  UCA0MCTL = UCBRS_3+UCBRF_0;               // Modulation UCBRSx=3, UCBRFx=0
  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  UCA0IE |= UCRXIE;                         // Enable USCI_A0 RX interrupt
                                            // over sampling

  while(1)
  {
    while (!(UCA0IFG&UCTXIFG));             // USCI_A0 TX buffer ready?
    UCA0TXBUF = 67;                           // TX -> RXed character
    __delay_cycles(500000);
  }

  __bis_SR_register(LPM0_bits + GIE);       // Enter LPM0, interrupts enabled
  __no_operation();                         // For debugger
}

// Echo back RXed character, confirm TX buffer is ready first
#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR(void)
{
  switch(__even_in_range(UCA0IV,4))
  {
  case 0:                                    // Vector 0 - no interrupt
  case 2:                                   // Vector 2 - RXIFG
    while (!(UCA0IFG&UCTXIFG));             // USCI_A0 TX buffer ready?
    UCA0TXBUF = 66;                           // TX -> RXed character
    break;
  case 4:                                    // Vector 4 - TXIFG
    while (!(UCA0IFG&UCTXIFG));             // USCI_A0 TX buffer ready?
    UCA0TXBUF = 68;                           // TX -> RXed character
    break;
  default: break;
  }
}




回复评论 (5)

硬件连接,好多人出在连接上,板子啥都没说,怎么回答
点赞  2015-10-21 09:50
1.共地  2. tx接rx   rx接tx
点赞  2015-10-21 10:23
引用: 数码小叶 发表于 2015-10-21 09:50
硬件连接,好多人出在连接上,板子啥都没说,怎么回答

他的switch语句中,这个函数的计算结果是__even_in_range(UCA0IV,4),是0,2,4,这些数字吗
点赞  2015-10-21 12:52
引用: huaiqiao 发表于 2015-10-21 12:52
他的switch语句中,这个函数的计算结果是__even_in_range(UCA0IV,4),是0,2,4,这些数字吗

应该是吧,ccs都是那样的,具体几还得看头文件,这个关键是连接都不说,不用管了
点赞  2015-10-21 15:37
我板子是這樣接的,目前只想將寫在程式碼中固定的數值uart到電腦中而已
忘記附上了硬件接法抱歉
  • 2015-10-22 01.11.14.jpg
点赞  2015-10-22 01:15
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复