打印

一直接收不到数据

[复制链接]
252|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhanglli|  楼主 | 2020-3-14 11:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机与RS232进行通信 一直接收不到数据

使用特权

评论回复
沙发
lium| | 2020-3-14 11:10 | 只看该作者
楼主详细说说怎么回事啊,这么说太笼统了

使用特权

评论回复
板凳
zhanglli|  楼主 | 2020-3-14 11:17 | 只看该作者
#include <51.h>
#define uchar unsigned  char
#define uint unsigned int
uchar trdata[]={0xaa,0x01,0x03,0x0f,0x00,0x05};
uchar rece;
uchar j;
//uchar  code trdata1[]={'R','I','C','H','M','C','U',0x0d,0x0a,0x00};
uchar flag=1;
void delay1ms(uint i)
{
uchar j;
         while(i--)
         {
                 for(j=0;j<115;j++)          //1ms基准延时程序
                 {
                  ;
                 }
         }
}
main()
{
uchar i;
SCON= 0x50;                //串口方式允许接收
//SM0=0;
//SM1=1;
//REN=0;
PCON= 0x00;                     //SMOD=0
TMOD= 0x20;                //定时器1定时方式2
TH1= 0xfd;                //11.0592M 9600波特率
TL1= 0xfd;
TR1= 1;                  //启动定时器
EA=1;
  while(1)
        {
          if(flag==1){
            ES=0;
            i=0;
        while(trdata!=0x05)
                    {
                                P0=trdata;
                            SBUF=trdata;
                          while(!TI);
                          TI=0;
                          i++;
                                delay1ms(1000);
                }
                  if(i>4)
                    {
                        flag=0;
                        ES=1;
                     }
                        }
        }
}
void INT_UartRcv(void) interrupt 4
{
    if(RI==1){
    RI=0;
        rece=SBUF;
        P0=0xff;
        j++;
        delay1ms(100);
//        bulb=1;
//        bulb1=1;
        if(j>12){
          flag=1;
          j=0;
          ES=0;
          }
         }
}

使用特权

评论回复
地板
hanwe| | 2020-3-14 11:22 | 只看该作者
把你的程序画成流程框图,你就知道问题在哪里了

使用特权

评论回复
5
yufe| | 2020-3-14 11:31 | 只看该作者
是仿真实现的吗?发一下原理图看看,帮你改一下

使用特权

评论回复
6
llia| | 2020-3-14 11:36 | 只看该作者
这个传感器的端口为RS232端口,通信协议是ASC2码

使用特权

评论回复
7
wangpe| | 2020-3-14 11:39 | 只看该作者
传感器和电脑相连通过串口调试助手可以看到返回的数据,但是希望通过程序发送指令并接收返回的值。

使用特权

评论回复
8
langgq| | 2020-3-14 11:43 | 只看该作者

不知道程序出现什么问题了,这个程序的中断进不去,应该就是没有返回数据。

使用特权

评论回复
9
wangzsa| | 2020-3-14 12:04 | 只看该作者

如果有串口调试助手可以采集到数据

使用特权

评论回复
10
zhuww| | 2020-3-14 12:06 | 只看该作者
不是很清楚传感器内部是怎么进行收发的。

使用特权

评论回复
11
lium| | 2020-3-14 12:09 | 只看该作者
仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。

使用特权

评论回复
12
guoyt| | 2020-3-14 12:12 | 只看该作者

在中断函数里加一些打印信息,看看进没进中断函数。

使用特权

评论回复
13
hanwe| | 2020-3-14 12:14 | 只看该作者
中断中加断点仿真中断就更能清楚查问题了。

使用特权

评论回复
14
zhanglli|  楼主 | 2020-3-14 12:21 | 只看该作者
其实还是不大明白,我再琢磨琢磨吧,多谢了哈

使用特权

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

本版积分规则

1016

主题

9386

帖子

1

粉丝