用MSP430F169做最简单的串口通信测试,采用轮询方式由下位机向上位机发送数据,波特率为9600,但是每次串口收到的数据都00,现将代码贴出,请各位指点!
#include <msp430f169.h>
unsigned int display_buffer[] = {1, 2, 3, 4};
void InitSys();
void SendData(unsigned int *p);
void Uart0Init();
void main(void){
WDTCTL = WDTPW + WDTHOLD;
InitSys();
while(1){
SendData(display_buffer);
}
}
void InitSys(){
BCSCTL2 |= SELM_3 + SELS;
P5SEL |= 0x70;
P5DIR |= 0x70;
Uart0Init();
}
void Uart0Init(){
P3SEL |= 0x30;
P3OUT |= 0x10;
P3DIR |= 0x10;
U0CTL |= SWRST;
ME1 |= UTXE0;
U0CTL |= CHAR;
U0TCTL |= SSEL0;
U0BR0 = 0x03;
U0BR1 = 0x00;
UMCTL0 = 0x4A;
U0CTL &= ~SWRST;
}
void SendData(unsigned int *p){
unsigned int n;
for(n = 0; n < 4; n++){
TXBUF = p[n];
while((IFG1 & UTXIFG0) == 0) ;
}
}