MSP430 (FG4618/F2013) 実験用ボードを、電源として MSP-FET430UIF/USB ケーブルとシリアル RS232 ケーブルを介して Windows 7 に接続しています。
入力を読み取ってハイパーターミナルにエコー バックするサンプル コードを実行しようとしています。
#include <msp430xG46x.h>
void main(void)
{
WDTCTL = WDTPW+WDTHOLD; // Stop WDT
P5DIR |= BIT1; // Set P5.1 to be output
P2SEL |= BIT4 + BIT5; // P2.4,5 = USCI_A0 RXD/TXD
UCA0CTL1 |= UCSSEL_2; // SMCLK
UCA0BR0 = 0x09; // 1MHz/115200 (lower byte)
UCA0BR1 = 0x00; // 1MHz/115200 (upper byte)
UCA0MCTL = 0x02; // Modulation (UCBRS0=0x01)(UCOS16=0)
UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
IE2 |= UCA0RXIE; // Enable USCI_A0 RX interrupt
_BIS_SR(LPM0_bits + GIE); // Enter LPM0, interrupts enabled
}
// Echo back RXed character, confirm TX buffer is ready first
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCIA0RX_ISR (void)
{
while(!(IFG2&UCA0TXIFG)); // Wait until can transmit
UCA0TXBUF = UCA0RXBUF; // TX -> RXed character
P5OUT^=BIT1; // Toggle LED4
}
これはサンプルのデモ コードであるため、問題はコードではなく、セットアップにあります。IAR エディタで次のコードを実行すると、FET デバッガの設定で COM149 ポートが選択されます。これは、デバイス マネージャで認識されるポートだからです。
次に、ハイパーターミナルを同じポートに接続しようとすると、「別のデバイスが選択したテレフォニー デバイスを使用しています」と表示されます。