一个关于串行口的问题

2020-02-05 09:22发布

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

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

是这样的,我单片机的TXD和RXD分别都接到了MAX485和MAX232,现在比如用RS232通信,就无法正常通信。
下面是电路图,电容以及连入电脑部分没画:
QQ截图20120516231522.png (24.02 KB, 下载次数: 1) 下载附件 2012-5-16 23:15 上传
下面是程序:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. sbit l1=P1^2;
  5. sbit l2=P2^0;
  6. void initUart();
  7. uchar rChar;
  8. void main()
  9. {
  10. l1=0;
  11. l2=0;
  12. initUart();
  13. IE=0x90;
  14. while(1);
  15. }
  16. void initUart()
  17. {                    
  18. SCON =0x50;
  19. RCAP2H=0xFF;
  20. RCAP2L=0xDC;
  21. T2CON=0x34;
  22. }
  23. void time() interrupt 4
  24. {
  25. RI=0;
  26. rChar=SBUF;
  27. if(rChar=='a')
  28. {
  29. l1=1;
  30. }
  31. else if(rChar=='b')
  32. {
  33. l1=0;
  34. }
  35. }
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
loongsuns
1楼-- · 2020-02-05 12:13
lz电路怎么接的?你的单片机有两个串口还是说只有一个被你接到两个串口芯片上?
如果是后者你的单片机只能发数据而无法正常接收数据。
bg6ixm
2楼-- · 2020-02-05 17:07
没看懂,也没看见有接GND的描述。
onbluesun
3楼-- · 2020-02-05 18:38
是这样的,我单片机的TXD和RXD分别都接到了MAX485和MAX232,现在比如用RS232通信,就无法正常通信。
chinabn
4楼-- · 2020-02-05 22:48
 精彩回答 2  元偷偷看……
onbluesun
5楼-- · 2020-02-06 02:19
那有什么解决方法呢?只能扩展串口吗?

一周热门 更多>