打印
[ZLG-MCU]

PC952之UART1 与 RSM3485

[复制链接]
3082|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
是正解,小疏忽**烦!谢谢!

使用特权

评论回复
5
linhai1986| | 2009-9-20 12:50 | 只看该作者
呵呵,找到问题了就好

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

1487

帖子

0

粉丝