MSP430F149串口通信,PC发送4个16进制数给单片机,让单片机逆序发送给PC端

#include <msp430f149.h>
unsigned char pre[4];
int i,j;
/********************主函数********************/
void main(void)
{
/*下面六行程序关闭所有的IO口*/
P1DIR = 0XFF;P1OUT = 0XFF;
P2DIR = 0XFF;P2OUT = 0XFF;
P3DIR = 0XFF;P3OUT = 0XFF;
P4DIR = 0XFF;P4OUT = 0XFF;
P5DIR = 0XFF;P5OUT = 0XFF;
P6DIR = 0XFF;P6OUT = 0XFF;

WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗
P6DIR |= BIT2;P6OUT |= BIT2; //关闭电平转换

P3SEL |= 0x30; // 选择P3.4和P3.5做UART通信端口
ME1 |= UTXE0 + URXE0; // 使能USART0的发送和接受
UCTL0 |= CHAR; // 选择8位字符
UTCTL0 |= SSEL0; // UCLK = ACLK
UBR00 = 0x03; // 波特率9600
UBR10 = 0x00; //
UMCTL0 = 0x4A; // Modulation
UCTL0 &= ~SWRST; // 初始化UART状态机

for(i=0;i<4;i++) //这个地方写的好像不对
{
while((IFG1 & URXIFG0)==0);
pre[i]=URXIFG0;
}
for(j=0;j<4;j++)
{
while (!(IFG1 & UTXIFG0)); //等待以前的数据发送完毕
TXBUF0=pre[3-j];
}

while(1);
}
========================================================
结果不对,比如我发送11 22 33 44,或者1A 2B 3C 4D,收到的都是40 40 40 40

第1个回答  2014-11-22

程序不对吧

我可以写的

追问

是不对啊,就是想问如何把URXIFG0装载到数组pre里面

追答

需要帮你写吗

追问

嫌麻烦的话告诉我一下原理就好了,能写更好

追答

可以给你写的

相似回答