一个关于串行口的问题
本帖最后由 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;
}
} lz电路怎么接的?你的单片机有两个串口还是说只有一个被你接到两个串口芯片上?
如果是后者你的单片机只能发数据而无法正常接收数据。 没看懂,也没看见有接GND的描述。 是这样的,我单片机的TXD和RXD分别都接到了MAX485和MAX232,现在比如用RS232通信,就无法正常通信。 ⊙﹏⊙b汗
数据冲突!
2楼正解! 那有什么解决方法呢?只能扩展串口吗?
页:
[1]