簡體   English   中英

將膩子數據導入MSP430

[英]PuTTY data into MSP430

我試圖對兩個MSP430進行編程,以通過PuTTY實質上是即時消息,但無法弄清楚如何在沒有調試器的情況下將鍵入的信息存儲到MSP430上。 我正在使用CCS,它是MSP430 F2274。 我有一個程序,用戶可以在一個MSP430的按鈕上輸入莫爾斯電碼,然后通過以下方法成功將另一個MSP430的PuTTY輸出到PuTTY。

void displayString(char array[], char size) {
    WDTCTL = WDTPW + WDTHOLD;            // Disable WDT
    DCOCTL = CALDCO_8MHZ;                // Load 8MHz constants
    BCSCTL1 = CALBC1_8MHZ;               //
    P3SEL |= 0x30;                       // P3.4,5 = USCI_A0 TXD/RXD
    UCA0CTL1 |= UCSSEL_2;                // SMCLK
    UCA0BR0 = 0x41;                      // 8MHz 9600
    UCA0BR1 = 0x03;                      // 8MHz 9600
    UCA0MCTL = UCBRS1;                   // Modulation UCBRSx = 2
    UCA0CTL1 &= ~UCSWRST;                // **Initialize USCI state

  int count;
  for(count=0; count<size; count++){
    while (!(IFG2&UCA0TXIFG));              // USCI_A0 TX buffer ready?
    UCA0TXBUF = array[count];               // TX -> RXed character
  }
}

有人可以使用類似的設置發送相反的代碼(將信息鍵入MSP430)嗎? 謝謝。

我使用了picocom:

$ picocom -r -b 9600 /dev/ttySxxxx

UART初始化代碼:

void uart_setup()
{
  // Configure UART pins
  P2SEL1 |= BIT0 + BIT1;
  P2SEL0 &= ~(BIT0 + BIT1);

  // Configure UART 0
  UCA0CTL1 |= UCSWRST; // perform reset
  UCA0CTL1 = UCSSEL_1;                      // Set ACLK = 32768 as UCBRCLK
  UCA0BR0 = 3;                              // 9600 baud
  UCA0BR1 = 0; 
  UCA0MCTLW |= 0x5300;                      // 32768/9600 - INT(32768/9600)=0.41
                                            // UCBRSx value = 0x53 (See UG)
  UCA0CTL1 &= ~UCSWRST;                     // release from reset
  //UCA0IE |= UCRXIE;                         // Enable RX interrupt
}

覆蓋putchar():

int putchar(int c)
{
  if (c == '\n') putchar('\r');
  while (!(UCA0IFG & UCTXIFG));
  UCA0TXBUF = c;
  return 0;
}

然后,您可以簡單地調用printf(...)將文本從MSP430輸出到串行端口。

如果您仍然希望將putchar()prtinf()調試用途-打印到調試器的調試窗口中,則可以使用單獨的read功能:

unsigned char ReadByteUCA_UART(void)    
{   
    //while ((IFG2&UCA0RXIFG)==0);  // wait for RX buffer (full)   
    while(UCA0STAT&UCBUSY);   
    return (UCA0RXBUF);   
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM