我用两个msp430f149的板子,进行485通信,一个发,一个收。主机发信息,从机能收到并且显示,但是从机返回信息,主机就收不到了,没有显示,把两个板子对调也不行,主机可以发信息给从机,从机无法发送信息给主机。
我的程序思想是这样的:由于双机互传,所以没有复杂的校验等等。
主机发送数据,然后等待接收中断,从机一开始就等待接收并显示,然后发送数据给主机。
从机可以接收到信息,但是主机却无法接收。
LcdReset(); //显示初始化
Delay5ms();
Init(); //uart初始化
_EINT(); //总中断使能
DRE_out ;
DE; //控制485为发送状态
while(1)
{
UTCTL1|=TXWAKE; //表明发送为地址数据
TXBUF1=0x01; //呼叫地址0x01
while((UTCTL1&0x01)==0);
UTCTL1&=~TXWAKE; //表明发送为数据
TXBUF1=0X31; // 发 '1'
while((UTCTL1&0x01)==0);
RE; //控制485接收
while(1); //等待中断
}
#pragma vector=UART1RX_VECTOR
__interrupt void UART1RX(void)
{
Disp1Char(0,1,RXBUF1); //显示收到的数据
}
请指教一下,谢谢了
此帖出自
小平头技术问答
一周热门 更多>