onbluesun 发表于 2012-5-16 22:12:08

一个关于串行口的问题

本帖最后由 onbluesun 于 2012-5-16 23:16 编辑

我的一个实验中,需要用一个单片机与RS232和RS485通信。单片机的RXD和TXD接了MAX232,单片机的RXD和TXD还有P2.0(使能端)接了MAX485,这时电脑就无法与单片机通信了。当我把MAX485的VCC断开后,电脑又可以通过RS232和单片机通信了。

是这样的,我单片机的TXD和RXD分别都接到了MAX485和MAX232,现在比如用RS232通信,就无法正常通信。
下面是电路图,电容以及连入电脑部分没画:

下面是程序:#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
sbit l1=P1^2;
sbit l2=P2^0;
void initUart();
uchar rChar;
void main()
{
l1=0;
l2=0;
initUart();
IE=0x90;
while(1);
}
void initUart()
{                  
SCON =0x50;
RCAP2H=0xFF;
RCAP2L=0xDC;
T2CON=0x34;
}
void time() interrupt 4
{
RI=0;
rChar=SBUF;
if(rChar=='a')
{
l1=1;
}
else if(rChar=='b')
{
l1=0;
}
}

loongsuns 发表于 2012-5-16 22:21:01

lz电路怎么接的?你的单片机有两个串口还是说只有一个被你接到两个串口芯片上?
如果是后者你的单片机只能发数据而无法正常接收数据。

bg6ixm 发表于 2012-5-16 22:24:10

没看懂,也没看见有接GND的描述。

onbluesun 发表于 2012-5-16 22:47:34

是这样的,我单片机的TXD和RXD分别都接到了MAX485和MAX232,现在比如用RS232通信,就无法正常通信。

chinabn 发表于 2012-5-17 14:32:09

⊙﹏⊙b汗
数据冲突!
2楼正解!

onbluesun 发表于 2012-5-17 17:08:44

那有什么解决方法呢?只能扩展串口吗?
页: [1]
查看完整版本: 一个关于串行口的问题