注册 登录
查看: 1031|回复: 14

[平衡组] 山外出的 陀螺仪加速度计上位机 K60如何发送数据?

[复制链接]
发表于 2014-1-12 21:29:00 | 显示全部楼层 |阅读模式
#include "outputdata.h"
#include "uart.h"

float OutData[4] = { 0 };

unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT)
{
    unsigned short CRC_Temp;
    unsigned char i,j;
    CRC_Temp = 0xffff;

    for (i=0;i<CRC_CNT; i++){      
        CRC_Temp ^= Buf[i];
        for (j=0;j<8;j++) {
            if (CRC_Temp & 0x01)
                CRC_Temp = (CRC_Temp >>1 ) ^ 0xa001;
            else
                CRC_Temp = CRC_Temp >> 1;
        }
    }
    return(CRC_Temp);
}

void OutPut_Data(void)
{
  int temp[4] = {0};
  unsigned int temp1[4] = {0};
  unsigned char databuf[10] = {0};
  unsigned char i;
  unsigned short CRC16 = 0;
  for(i=0;i<4;i++)
   {

    temp[i]  = (int)OutData[i];
    temp1[i] = (unsigned int)temp[i];

   }

  for(i=0;i<4;i++)
  {
    databuf[i*2]   = (unsigned char)(temp1[i]%256);
    databuf[i*2+1] = (unsigned char)(temp1[i]/256);
  }

  CRC16 = CRC_CHECK(databuf,8);
  databuf[8] = CRC16%256;
  databuf[9] = CRC16/256;

  for(i=0;i<10;i++)
    uart_putchar(databuf[i]);
}

这个程序的CRC校检 是怎么实现的?说明的文档好啊,没怎么看懂呀,我用的是K60 在山外的新例程里,要怎么改?在uart.c里没有找到,相应的函数借口,现在还没能用上位机将陀螺仪加速计采集的数据在Serial_Digital_Scope V2  上显示出来!山外哥求教之.............
回复

使用道具 举报

 楼主| 发表于 2014-1-12 21:34:48 | 显示全部楼层
谁能 解释一下上面的 代码? 没有学过Labview  上位机实在不熟!
回复 支持 反对

使用道具 举报

发表于 2014-1-12 22:27:59 | 显示全部楼层
程序中确定了串口通信开了吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-13 08:12:06 来自手机 | 显示全部楼层
肯定呀,用串口助手是可以显示的,但用到上位机的时候就不行了!
回复 支持 反对

使用道具 举报

发表于 2014-1-13 08:16:34 | 显示全部楼层
CRC_CHECK ,这个 函数 是 写上位机的作者提供的,所以根本不需要管它。
回复 支持 反对

使用道具 举报

发表于 2014-1-13 08:22:03 | 显示全部楼层
请按照我们提供的稳定和配套的代码来操作。下面的帖子里已经有现成的代码和讲解文档。
【平衡组】山外平衡组站立调试指南(初级篇)
http://www.vcan123.com/forum.php?mod=viewthread&tid=1282

默认是没输出数据的,需要修改一下代码,改成可输出(调试的时候才需要输出,跑的时候,不需要输出)
  1. void Rd_Ad_Value(void)
  2. {

  3.     MMA7361 = adc_once(ZOUT, ADC_12bit);   //Z
  4.     ENC03= adc_once(Gyro1,ADC_12bit);    // gyro1

  5.     //由于使用软件滤波,因此不再用 硬件融合角度
  6.     // real_angle = adc_once(Ang,ADC_12bit); //ang

  7. #if 1  //需要把这里的 0 改成 1,1表示输出数据。
  8.     OutData[0] = MMA7361;
  9.     OutData[1] = ENC03;
  10.     //OutData[2] = gyro2 ;
  11.     //OutData[3] = real_angle;
  12.     OutPut_Data();
  13. #endif

  14. }
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-13 09:45:48 | 显示全部楼层
好的,多谢!我找找看,
回复 支持 反对

使用道具 举报

发表于 2014-1-13 18:46:09 | 显示全部楼层
山外メ雲ジ 发表于 2014-1-13 08:22
请按照我们提供的稳定和配套的代码来操作。下面的帖子里已经有现成的代码和讲解文档。
【平衡组】山外平衡 ...

你好,请问下,你们K60代码里面的
#define XOUT    ADC1_DM0
#define YOUT    ADC0_SE16
#define ZOUT    ADC0_SE17

#define Gyro1   ADC1_SE16
#define Gyro2   ADC1_DP0
#define Ang     ADC0_SE18
关于陀螺仪对应的最小系统板的I/0端口是那几个呀?在对应的程序管脚里面没有显示,,,
回复 支持 反对

使用道具 举报

发表于 2014-1-13 18:47:13 | 显示全部楼层
小钟 发表于 2014-1-13 18:46
你好,请问下,你们K60代码里面的
#define XOUT    ADC1_DM0
#define YOUT    ADC0_SE16

你看看 ADC1_DM0 的定义,有注释的。在 adc.h 那里
回复 支持 反对

使用道具 举报

发表于 2014-2-24 20:57:28 | 显示全部楼层
山外メ雲ジ 发表于 2014-1-13 08:22
请按照我们提供的稳定和配套的代码来操作。下面的帖子里已经有现成的代码和讲解文档。
【平衡组】山外平衡 ...

你那个平衡调试的中级篇用的是蓝牙和上位机一起调试的吗
回复 支持 反对

使用道具 举报

发表于 2014-3-9 00:53:12 | 显示全部楼层
山外メ雲ジ 发表于 2014-1-13 08:22
请按照我们提供的稳定和配套的代码来操作。下面的帖子里已经有现成的代码和讲解文档。
【平衡组】山外平衡 ...

山外哥,我的虚拟示波器根本没有波形反应,可是我的确#if 1了。串口是UART4,C14,C15,COM1,9600.      我试了程序运行总卡在下面这句话。我用的是DZ,不是FX。有可能是什么地方出错呢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2014-3-9 01:25:38 | 显示全部楼层
xiayank 发表于 2014-3-9 00:53
山外哥,我的虚拟示波器根本没有波形反应,可是我的确#if 1了。串口是UART4,C14,C15,COM1,9600.       ...

工程选项里,有没有选择DX系列的?(下面链接的第11条)
卡死在上电里,那这个跟下载有关系了,可以尝试解锁。(下面链接的第4条)

【山外K60 KL26】jlink 下载失败的最详细解决办法 - 智能车资料区 - 山外-vcan123论坛 http://www.vcan123.com/forum.php ... p;tid=84&ctid=1
回复 支持 反对

使用道具 举报

发表于 2014-3-9 13:16:34 | 显示全部楼层
缑萱彤 发表于 2014-3-9 01:25
工程选项里,有没有选择DX系列的?(下面链接的第11条)
卡死在上电里,那这个跟下载有关系了,可以尝试 ...

谢谢 我解锁成功了 可是还是不行
回复 支持 反对

使用道具 举报

发表于 2014-3-9 13:17:47 | 显示全部楼层
xiayank 发表于 2014-3-9 13:16
谢谢 我解锁成功了 可是还是不行

下载不了,还是运行不了?
回复 支持 反对

使用道具 举报

发表于 2014-3-9 13:18:21 | 显示全部楼层
xiayank 发表于 2014-3-9 13:16
谢谢 我解锁成功了 可是还是不行

是用我们的工程和我们的核心板吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部