[ZLG-MCU] PC952之UART1 与 RSM3485

[复制链接]
 楼主| xiaoxin1986 发表于 2009-9-19 14:35 | 显示全部楼层 |阅读模式
我的电路是这样的,内部RC,内部复位,UART0和UART1分别外接RSM3485,实现两个独立的RS485接口。
UART0--RSM3485_0--P4^6控制读写
UART1--RSM3485_1--P4^4控制读写
测试程序:
#include "REG952.h"
#include <INTRINS.H>
#define NOP10 {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}
sbit test =P0^0;
void dlylittle()
{
unsigned char i;
for(i=0;i<128;i++);
}
void main()
{
P0M1 =0x00;
P0M2 =0x00;
P4M1 =0x00;
P4M2 =0x00;

S1CON =0x50;
S1STAT =0x60;
BRGCON_1 =0X00;
BRG0_1 =0XF0;
BRG1_1 =0X02;
BRGCON_1 =0X03;


TEST =0;
P4 &=0xEF
dlylittle();
while(1)
{
test =~test;
S1BUF =0X55;
while(S1CON&0x02 == 0);
S1CON &=0xFD;
NOP10;
}
}
 楼主| xiaoxin1986 发表于 2009-9-19 14:35 | 显示全部楼层
通过示波器可以看到test位约6us反相。RS3485_1读写控制为0。

但是TXD1为100us高,2us低的波形。上位机接收不到正确的数据。

在测试RS3485_0时,则一切正常,两个模块的电路是一样的,口线直接与模块连接。

请问这是为什么?
linhai1986 发表于 2009-9-19 18:37 | 显示全部楼层
(1)发送数据时,控制线就为高电平

(2)while(S1CON&0x02 == 0);改为while((S1CON&0x02) == 0);
 楼主| xiaoxin1986 发表于 2009-9-19 20:04 | 显示全部楼层
是正解,小疏忽**烦!谢谢!
linhai1986 发表于 2009-9-20 12:50 | 显示全部楼层
呵呵,找到问题了就好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

1487

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部