上位机自己测试串口没有问题。但是和下位机430通信时确不通啊,不只怎么回事啊。程序很简单的。449的单片机
源程序如下:
#ifndef MSP430XF449_h
#include <msp430x44x.h>
#endif
/*******************************************************
* 模块初始化
*******************************************************/
void main (void)
{
unsigned char tmpv;
FLL_CTL0 &= 0xbf;
UCTL0 |=SWRST;
UCTL0 |=CHAR; // 8-bit 字符
FLL_CTL1|=SELS+XT2OFF+SELM_XT2; //开启第二个振荡器
do
{
IFG1 &= ~OFIFG; // 清除OSCFault标志
for(tmpv = 0xff;tmpv > 0;tmpv--); //
}
while ((FLL_CTL0&XT1OF) == XT1OF ); // 第二个振荡器是否正常工作
UCTL0|=SWRST;
UCTL0|=CHAR; // 8-bit 字符
UTCTL0=SSEL0+SSEL1; // UCLK=SMCLK
UBR00=0xa0; // 在4MHz下进行 9600波特率通信
UBR10=0x01; // 在4MHz下进行 9600波特率通信
UMCTL0=0x5e; // 调整寄存器
UCTL0&=~SWRST;
ME1|= (UTXE0 + URXE0); // 使能 USART0 TXD/RXD
IE1|= URXIE0 ;
IFG1 = 0x00;
P2SEL |= 0x30; // P2.4,P2.5 = USART0 TXD/RXD
P2DIR |= 0x10;
LPM3;
}
/****************************************************
* 数据接收中断
****************************************************/
#pragma vector = UART0RX_VECTOR
__interrupt void data_Receive(void) // UART接收中断
{ while((IFG1&UTXIFG0)==0 );
TXBUF0=RXBUF0;
哭求大侠指点啊。