打印

单片机串口问题 急!拜托

[复制链接]
楼主: anqi0126
手机看帖
扫描二维码
随时随地手机跟帖
21
hong60104| | 2011-9-1 14:24 | 只看该作者 回帖奖励 |倒序浏览
呵呵,八楼说的是好办法,试试哦

使用特权

评论回复
22
anqi0126|  楼主 | 2011-9-4 21:44 | 只看该作者
公头母头怎么了? 19# roaking

使用特权

评论回复
23
anqi0126|  楼主 | 2011-9-4 21:48 | 只看该作者
隔离芯片?你指MAX232? 17# zhanyang

使用特权

评论回复
24
anqi0126|  楼主 | 2011-9-4 21:59 | 只看该作者
串口的线序是对的,我的程序在人家那试都是好使的。波特率是对的。

使用特权

评论回复
25
anqi0126|  楼主 | 2011-9-4 22:00 | 只看该作者
我用的是自己用导线焊接的,会影响吗?我换了一个串口工具,上面显示帧错误。到底怎么回事?

使用特权

评论回复
26
anqi0126|  楼主 | 2011-9-4 22:39 | 只看该作者
我MAX232的TX为-9.8V,RX为+5V,他们测得TX为-9.8V,RX为0V

使用特权

评论回复
27
anqi0126|  楼主 | 2011-9-6 08:14 | 只看该作者
:'(

使用特权

评论回复
28
gx_huang| | 2011-9-6 08:26 | 只看该作者
别急,这是最基本的基本功,自己解决,才会进步。

使用特权

评论回复
29
anqi0126|  楼主 | 2011-9-6 10:29 | 只看该作者
这么简单,就是找不到错误

使用特权

评论回复
30
xoyo| | 2011-9-6 10:32 | 只看该作者
1# anqi0126
可能是某一个细节上你没有注意到,静下心来慢慢从头查起,这种事情别人说也没有多大用处,只能给你提供一个思路!

使用特权

评论回复
31
原野之狼| | 2011-9-6 10:34 | 只看该作者
该说的大家也说了,你自己再慢慢试吧,弄出来你水平就长进了~:lol

使用特权

评论回复
32
anqi0126|  楼主 | 2011-9-6 10:36 | 只看该作者
我把单片机的RX   TX   短接了,程序#include  <AT89X51.H>
#define uchar unsigned char
#define uint unsigned int
unsigned char flag,a,i;
sbit PP1=P1^0;
sbit PP2=P1^1;
sbit PP3=P1^2;
sbit PP4=P1^3;
void UART_Send(unsigned char dat)
{
SBUF=dat;
while(!TI);
TI=0;
}
void Send_Data(const char *ptr)
{
while(*ptr)
{
  UART_Send(*ptr);
  ptr++;
}
}
void init()
{
SCON=0x50;          //Uart in mode 1
TMOD=TMOD|0x20;     //Timer 1 in mode 2
TH1=0xFD;
TL1=0xFD;
TR1=1;
ES=1; //串口中断允许
PS=1; //高优先级
EA=1; //开全局中断
  }
void main(void)
{
   init();
   while(1)
   {
     if(flag==1)
  {
      flag=0;
      if(a==0xff) //单片机自发自收时
         {
    PP1=0;
    PP3=0;
    }
  if(a==0x0f) //单片机接收PC机数据时
         {
    PP2=0;
    PP4=0;
    }
    Send_Data("0xff \n");
          Send_Data("I get \n");
  }
   }
}
void ser() interrupt 4
{
  if(RI)
  {
     RI=0;
     a=SBUF;
     flag=1;
    }
}
应该是1、3低电平,结果都是高电平 8# 刘前辈

使用特权

评论回复
33
weizheng07| | 2011-9-6 16:52 | 只看该作者
个人觉得如果硬件完全正确的话,那么就是软件的问题,比如发送之后需要查询是否发送结束,接收之前要查看是否存在已有数据,有些芯片如at91sam9260等,如果你查询到发送结束直接切换,十有**会出错,因为外设的操作会慢大概不到一个周期

使用特权

评论回复
34
ccicc| | 2011-9-6 17:27 | 只看该作者
还没搞好?短接单片机端的rxd和txd后,用pc串口工具确认max323通路是否有问题?没问题再调单片机程序。
我也没看你的程序,网上能找到例程吧,自己对一下。

使用特权

评论回复
35
anqi0126|  楼主 | 2011-9-7 10:00 | 只看该作者
我把单片机的RX TX  对接了,MAX232是没问题的,电脑可以自发自收,但最糟糕的是我在别人那拿过来人家跑过的程序用在我这也是不好使的,所以现在很难判断啊!有时候我测测他的引脚他就开始输出数(但是都是00 或不正确的数)感觉就好像不稳定或是电压不足一样总是认为输出是低电平一样(我猜的) 34# ccicc

使用特权

评论回复
36
anqi0126|  楼主 | 2011-9-7 10:04 | 只看该作者
你说的意思是让我编程做延时吗? 33# weizheng07

使用特权

评论回复
37
anqi0126|  楼主 | 2011-9-7 10:05 | 只看该作者
你说的意思我没太懂,我该怎么做呢? 33# weizheng07

使用特权

评论回复
38
xoyo| | 2011-9-7 18:13 | 只看该作者
兄弟,找个示波器测一测电源电压以及波形

使用特权

评论回复
39
yadaovs| | 2011-9-8 00:20 | 只看该作者
平行线和交叉线弄混了?

使用特权

评论回复
40
anqi0126|  楼主 | 2011-9-8 10:08 | 只看该作者
是姐妹,我没有示波器啊,呜呜呜 38# xoyo

使用特权

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

本版积分规则