串口通信有什么错误啊?为什么上位机不显示啊!
代码有什么错误啊#include <msp430x14x.h>
char rece;
int count=0,f=0;
void HELLO(void)
{
unsigned char i;
for(i=0;i<6;i++)
{
while((IFG1&UTXIFG0)==0);
TXBUF0= rece;
}
}
void main(void)
{WDTCTL = WDTPW + WDTHOLD;
UTCTL0|=SSEL1;
UBR00=0x69;UBR10=0x03;
UMCTL0=0x00;
ME1|=UTXE0+URXE0;
UCTL0|=CHAR;
UCTL0 &= ~SWRST;
IE1|=URXIE0;
P3DIR|=0x10;
P3SEL|=0x30;
_EINT();
for(;;)
{ if(f==0)
{
f=1;
HELLO(); //f=1;
}
}
}
#pragma vector=UART0RX_VECTOR
__interrupt void USART0_RX(void)
{
rece=RXBUF0;
count++;
if(count==6)
count=0;
}
是上位机接收不到数据吗?有以下问题
1、开始的时候马上发送,rece数组中没数字。
2、while((IFG1&UTXIFG0)==0);这个应该是while((IFG1&UTXIFG0)==1);吧?
3、接收到数据后不会回传。
建议楼主弄个仿真器,对调试程序很有用处。
qiuchen 发表于 2012-11-28 20:46 static/image/common/back.gif
是上位机接收不到数据吗?有以下问题
1、开始的时候马上发送,rece数组中没数字。
2、while((IFG1&UTXIFG0) ...
是啊,该怎么改啊,就是收不到数据啊,请高手指教啊!希望加QQ:2216054168 971626996 发表于 2012-11-29 15:37 static/image/common/back.gif
是啊,该怎么改啊,就是收不到数据啊,请高手指教啊!希望加QQ:2216054168 ...
你分开调试,先把发送调试通过再说,先只发一个数。
另外建议你参考一下TI的例程。
页:
[1]