打印

请大神帮忙看看串口问题?????

[复制链接]
905|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xu0801hua|  楼主 | 2014-3-4 12:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include"reg51.h"
  #include"intrins.h"
  #define uchar unsigned char
  #define uint unsigned int
  /***按键定义*****/
  sbit  KEY_P3_4          =P3^4;   //左边拨动开关(拨向左:P3^4==0,表示需要标定电压;否则不需要标定)
  sbit  KEY_P0_0          =P0^0;   //右边红色按钮(按下时:P0^0==0,表示开始标定电压;否则不标定)
  sbit  led=P1^1;
  void ISP_IAP_Disable();
  /***程序用到的定义****/
  uint i,j,AD_finished=0,pj=0;mj=0,x=5,y;
  unsigned char su[8]={1,2,3,4,5,6,7,8};
  unsigned char *str=su;
  uchar num,result,di,flag;                                 
  /**********延时函数*****************/
  void delayms(uint xms)
  {
   for(i=xms;i>0;i--)
     for(j=110;j>0;j--);
  }
/*********串口/定时器初始化***************/
  void init()
  {
    TMOD=0x21;//设定T1定时器工作方式2 0010 0001
    TH1=0xfd;//T1定时器高8位赋值
    TL1=0xfd;//T1定时器低8位赋值
        TH0=0x4c;//T0定时器高8位赋值
        TL0=0x00;//T0定时器低8位赋值
    SCON=0x40;//设定串口工作方式1
    EA=1;//开中断
        TR0=1;//开启定时器T0
    TR1=1;//开启定时器T1
        ET0=1;//开定时器0中断
    ES=1;//允许串口中断
    REN=1;//允许串口接收
  }
//==================================================
//函数:void UART1_Send_Char(uchar send_data)
//描述:单片机向串口发送一个字符
//参数:uchar send_data       //待发送数据
//返回:无
   void UART1_Send_Char(uchar send_data)//1.32===int 1.0//==132
  {
   ES=0;
   SBUF=send_data;//接收数据
   while(!TI);
   TI=0;
   ES=1;
  }
// 函数:void UART1_Send_String(uchar *str, uchar len)
//描述:单片机向串口发送一个字符串
//参数:uchar *str        //待发送数据
//            uchar len        //字符串长度
//返回:无
//---------------------------------//
void UART1_Send_String(uchar *str, uchar len)
   {
    uchar z;
        for(z=0;z<len;z++)
        {
         UART1_Send_Char(*(str+z));
        }         
   }
    /*********定时中断***********/
  void T0_time() interrupt 1
  {
   TH0=0x4c;
   TL0=0x00;
   num++;
    if(num>=20)
   {
    num=0;
    pj=1;
   }
  }               
/**主函数***/
    void main()
  {
   init();
   while(1)
   {  
        UART1_Send_String(str,8);
        }
        }
帮忙看一下我串口发送一个数组su【8】={1,2,3,4,5,6,7,8};
为什么在串口助手上看到是00 01 00 02 00 03 00 04
我怀疑是指针指错了;

相关帖子

沙发
ningling_21| | 2014-3-4 12:39 | 只看该作者
本帖最后由 ningling_21 于 2014-3-4 12:42 编辑

什么串口助手,
我用STC的串口调试都可以正常接收:01 02 03 04 05 06 07 08


使用特权

评论回复
板凳
youluo235| | 2014-3-4 13:25 | 只看该作者
参考被人正确的例子,对照自己的程序,另外用助手看看数据什么的。总能检查出来的。

使用特权

评论回复
地板
xu0801hua|  楼主 | 2014-3-4 15:31 | 只看该作者
ningling_21 发表于 2014-3-4 12:39
什么串口助手,
我用STC的串口调试都可以正常接收:01 02 03 04 05 06 07 08

谢谢大神,我已经搞定了

使用特权

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

本版积分规则

34

主题

81

帖子

1

粉丝