使用山外多功能调试助手展示多路通道虚拟示波器(1路和2路)

1. 目的

展示三轴加速度传感器中,z轴加速度实时波形图(一路通道),后面又展示了z轴角度(第二路通道)。

2. 具体实现过程

在这里插入图片描述这是山外多功能调试助手的通信协议。

2.1 一路通道数据展示(部分代码)

初始化定时器

Timer1_Init(4000-1,168-1);   //定时器1初始化,4ms

发送数据

void run_Array4(void){
 array2[0] = 0x03;    //放数据的数组
 array2[1] = 0xFC;
 acc_z_f1 = SCL3300.Read(ACC_Z);   //读取一次加速度的值,这个值一般是0.9多
 res_acc_z = (uint16_t)(acc_z_f1*1000); //乘以1000,转16位
 acc1_z_temp8_l =  res_acc_z&0x00FF;     //取低8位
 acc1_z_temp8_h = (res_acc_z&0xFF00)>>8; //取高8位
 array2[2] = acc1_z_temp8_l;   //先发低八位,后发高八位
 array2[3] = acc1_z_temp8_h;
 array2[4] = 0xFC;
 array2[5] = 0x03;
for(n=0; n<6; n++){            //以数组形式发送
   Usart_SendByte(array2[n]);  //8位发送
  }
}

每隔40ms发送一次数据,main中调用这个test()函数

void test(void){ 
	 if(z_count == 10){   //40ms = 4*10
      z_count = 0;
	  run_Array4();
	 }	
}

结果展示(这里的数据类型是选择uint16_t)
在这里插入图片描述

2.2 两路通道数据展示(部分代码)

发送数据,其他代码和上面是一样的。

void run_Array4(void){
 array2[0] = 0x03;
 array2[1] = 0xFC;
 acc_z_f1 = SCL3300.Read(ACC_Z);         //读取一次加速度的值,这个值一般是0.9多 
 res_acc_z = (uint16_t)(acc_z_f1*1000);  //乘以1000,转16位
 acc1_z_temp8_l =  res_acc_z&0x00FF;      //先低8位
 acc1_z_temp8_h = (res_acc_z&0xFF00)>>8;  //再高8位
 array2[2] = acc1_z_temp8_l;
 array2[3] = acc1_z_temp8_h;
 acc_x_f1 = SCL3300.Read(ANG_Z);        //读取一次角度的值
 res_acc_x = (uint16_t)(acc_x_f1);
 acc1_x_temp8_l =  res_acc_x&0x00FF;     //先低8位
 acc1_x_temp8_h = (res_acc_x&0xFF00)>>8; //再高8位
 array2[4] = acc1_x_temp8_l;
 array2[5] = acc1_x_temp8_h;
 array2[6] = 0xFC;
 array2[7] = 0x03;
for(n=0; n<8; n++){
   Usart_SendByte(array2[n]);
  }
}

结果展示(这里的数据类型是选择uint16_t)
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值