现象:板子的485有问题(能收但是不能发)

485的方向位没有设置
因此485芯片一直处于接收的状态,而发送不了
处理方法:
在需要发送时,把485方向位置于发送,发送完后再把方向位置回接收。
但注意,要在发送最后一个字符后检测发送完标志成后再置回接收

static void Uart2SendData(char *pcSendBuf, int iLength)
{
//把485的方向置为发送
P9OUT |= BIT3;

unsigned int i;

for(i = 0; i < iLength; i++) {
while (!(UCA2IFG & UCTXIFG))
;
UCA2TXBUF = *pcSendBuf++;
}

while (!(UCA2IFG & UCTXIFG))
;
Delay_ms(1);

P9OUT &= ~BIT3;

//把485的方向置为接收
}

05-07 15:36