私のMacでMSPF5529を使用しようとしています。私はコード・コンポーザーのスタジオをダウンロードして、チップにアクセスするだけでなく、点滅ライトや必要な他のアプリケーションに簡単にアクセスできます。UARTでMSPf5529を使用すると、Macでスペースセディラが返される
私の目標は、Macでシリアル通信を使用してUARTを使用してメッセージを印刷することです。私は現在、チップと通信するために "goSerial"と呼ばれるアプリケーションを使用しています。以下のコードは、UARTを初期化し、1文字を取り込み、文字を印刷してから明かりを点滅させることになっています。しかし、代わりに、コードは文字を取り込み、16進値0xFCの奇妙な記号(スペーシングセディラ)を出力してから、点滅させます。
この記号は、MSP430バッファに入れた文字に関係なく表示されます。
マイコードは以下のとおりです。誰もこの問題を以前に持っていましたか?これをどうすれば解決できますか?
void Init_UART(void);
void OUTA_UART(unsigned char A);
unsigned char INCHAR_UART(void);
#include "msp430f5529.h"
#include "stdio.h"
int main(void){
volatile unsigned char a;
volatile unsigned int i;
WDTCTL = WDTPW + WDTHOLD;
Init_UART();
a=INCHAR_UART();
a=INCHAR_UART();
OUTA_UART(a);
// go blink the light to indicate code is running
P1DIR |= 0x01;
for (;;){
P1OUT ^= 0x01; i = 10000;
do i--;
while (i != 0); }
}
void OUTA_UART(unsigned char A){
while ((UCA1STAT&UCBUSY));
// send the data to the transmit buffer
UCA1TXBUF =A;
}
unsigned char INCHAR_UART(void){
while ((UCA1STAT&UCBUSY) == 0);
// go get the char from the receive buffer
return (UCA1RXBUF);
}
void Init_UART(void){
P4SEL |= 0x30; // Port 4.4 and port 4.5 controls the transfer
UCA1CTL1|= UCSWRST; // Put state machine in reset
UCA1CTL1|= UCSSEL_1; //Choose 32765Hz
UCA0BR0=3; // Baud rate = 9600
UCA0BR1=0; // Choose 32765 hz
UCA1MCTL=0x06; // Modulation UCBRSx=3, UCBFx = 0
UCA1CTL1 &= ~UCSWRST; // Put USCI in operation mode
}
ありがとう!残念なことに、私のコードはまだ有用なものを印刷しません。なぜそれが動作していないのか分かりません。 何らかの理由で、次の文字列を印刷し続けます。 ・í...Ä²Ì – Kelsey
おそらく間違ったボーレートです。クリスタルなしでは時計はあまり正確ではありません。 –
あなたは正しいです、私のボーレートは間違っていました。私はそれを修正した後、問題を解決しました。助けてくれてありがとう!残念なことに私の評判はとても悪いので投票できませんが、私を信じてください。 – Kelsey