打印
[硬件设计]

CC2530使用DYP-ME007TX超声波测距

[复制链接]
1171|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sunburn6192|  楼主 | 2014-2-25 16:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠,这个问题困扰我好几天了,我觉得自己水平虽然不算高,但搞单片机程序开发应该还可以,可这个看上去简单的程序我一直都无法解决。

我用的是 DYP-ME007TX串口超声波测距模块,这个在淘宝上有不少,这个模块只有三个引脚,分别是VCC、GND和OUT,它的特点是:

模块内部每50ms进行一次测距,    并从引脚输出一帧,含4个8位数据,帧格式为:0XFF+H_DATA+L_DATA+SUM
      1.0XFF:  为一帧开始数据,用于判断。
      2.H_DATA:距离数据的高8位。
      3.L_DATA:距离数据的低8位。
      4.SUM:    数据和,用于效验。其0XFF+H_DATA+L_DATA=SUM(仅低8位)
    注:H_DATA与L_DATA合成16位数据,即以毫米为单位的距离值。

以上就是说明书中的参数。我使用CC2530来编程,想要把4个8位数据取出来。我用的是CC2530的P0.4口接收数据,烧入程序后用串口调试助手来看结果,可是一点儿输出都没有,单步运行也都是0,以下是我的程序,大家给找找问题吧。

#include <ioCC2530.h>
#include <string.h>

#define ARRAY_SIZE(arr) (sizeof(arr)/sizeof(arr)[0])

typedef unsigned char uchar;
typedef unsigned int uint;

char RxBuf;
uchar count;
char RxData[33];

void DelayMS(uint msec)
{
  uint i,j;
  for(i=0;i<msec;i++)
    for(j=0;j<1070;j++);
}

void InitUart(void)
{
  PERCFG=0x00;
  P0SEL|=0x0c;    //P0用作串口
  P0DIR&=~0x10;   //P0.4定义为输入口
  P2DIR&=~0xc0;   //P0口优先座位UART0
  P2INP|=0x20;
  U0CSR|=0x80;    //设置为UART方式
  U0GCR|=11;
  U0BAUD|=216;    //波特率设为115200
  UTX0IF=0;   //UART0 TX中断标志初始置位0
  U0CSR|=0x40;    //允许接收
  IEN0|=0x84;   //开总中断,允许接收中断
}

void UartSendString(char *Data,int len)
{
  uint i;
  for(i=0;i<len;i++)
  {
    U0DBUF=*Data++;
    while(UTX0IF==0);
    UTX0IF=0;
  }
}

#pragma vector=URX0_VECTOR
__interrupt void UART0_ISR(void)
{
  URX0IF=0;   //清中断标志
  RxBuf=U0DBUF;
}

void main(void)
{
  CLKCONCMD&=~0x40;   //设置系统时钟源为32M晶振
  while(CLKCONSTA&0x40);    //等待晶振稳定为32M
  CLKCONCMD&=~0x47;   //设置系统主时钟频率为32M
  
  InitUart();
  P0SEL&=0xef;
  memset(RxData,0,32);
  
  char str[9]="distance:";    //新增
  
  while(1)
  {
    if(RxBuf!=0&&count<32)
    {
      RxData[count++]=RxBuf;
      UartSendString(str,9);
      UartSendString(RxData,32);
    }
    else      
    {
      if(count>=32)
      {
        count=0;    //计数清零
        memset(RxData,0,32);
      }
    }
    RxBuf=0;
  }
}

相关帖子

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

本版积分规则

1

主题

1

帖子

0

粉丝