亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
很全的Leadiy-M3C陀螺儀資料與STM32源程序
[打印本頁]
作者:
十里故清歡
時間:
2018-6-1 22:41
標題:
很全的Leadiy-M3C陀螺儀資料與STM32源程序
希望有更好的可以一起分享上來
0.png
(545.94 KB, 下載次數: 44)
下載附件
2018-6-2 03:43 上傳
0.png
(46.11 KB, 下載次數: 38)
下載附件
2018-6-2 03:44 上傳
單片機源程序如下:
/*********************************
LEADIY-M3測試程序示例V2.2
作者: Colin
版權所有: 深圳市軟芯微電子科技有限公司
芯片型號: stm32f103CB
*************************************/
#include "string.h"
#include "stm32f10x.h"
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "drv_Uart.h"
int16_t Gyro[3], Acc[3], Angle[3], Mag[3];
int32_t Altitude, Pressure;
float Temper, GyroDPS[3], AccG[3], MagGauss[3], AngleDeg[3];
/*讀兩個字節組成一個16位數*/
int16_t ReadW(void)
{
unsigned char BufC;
int16_t BufW;
BufC = uartRead();
BufW = (uint16_t)BufC;
BufC = uartRead();
BufW = (int16_t)(((uint16_t)BufC << 8) | BufW);
return BufW;
}
int main(void)
{
unsigned char BufC;
uint16_t BufW;
/* 系統初始化*/
systemInit();
delay_ms(300);
printf("LEADIY-M3 TEST V2\r\n");
while (1)
{
if(uartAvailable()) //檢測是否收到LEADIY-M3數據
{
BufC = uartRead(); //讀一個字節
if((BufC==0xA7)){ //判斷是否為幀 頭
BufC = uartRead(); //讀一個字節
if (BufC==0x7A) { //判斷是否為幀頭
BufC = uartRead(); //讀一個字節
switch(BufC) //幀類型判斷
{
case 0x70: //標識為角速度幀
BufC = uartRead(); //幀長度,可不用
BufC = uartRead(); //效驗位
Gyro[0] = ReadW(); //X軸
Gyro[1] = ReadW(); //Y軸
Gyro[2] = ReadW(); //Z軸
/*GYRO的量程為2000度每秒*/
/* 得到以"dps" ("度/秒")為單位的角速度值*/
GyroDPS[0] = (float)Gyro[0]*4/16.4;
GyroDPS[1] = (float)Gyro[1]*4/16.4;
GyroDPS[2] = (float)Gyro[2]*4/16.4;
printf("GYRO X:%d Y:%d Z:%d\r\n", Gyro[0], Gyro[1], Gyro[2]);
printf("GyroDPS X: %.2f, Y: %.2f, Z: %.2f\r\n", GyroDPS[0], GyroDPS[1], GyroDPS[2]);
break;
case 0x71: //標識為加速度幀
BufC = uartRead(); //幀長度,可不用
BufC = uartRead(); //效驗位
Acc[0] = ReadW(); //X軸
Acc[1] = ReadW(); //Y軸
Acc[2] = ReadW(); //Z軸
/*ACC的量程為8G*/
/*得到以"g"為單位的加速度*/
AccG[0] = (float)Acc[0] / 4096;
AccG[1] = (float)Acc[1] / 4096;
AccG[2] = (float)Acc[2] / 4096;
printf("ACC X:%d Y:%d Z:%d\r\n", Acc[0], Acc[1], Acc[2]);
printf("AccG X:%.2f Y:%.2f Z:%.2f\r\n", AccG[0], AccG[1], AccG[2]);
break;
case 0x72: //標識為姿態幀
BufC = uartRead(); //幀長度,可不用
BufC = uartRead(); //效驗位
Angle[0] = ReadW(); //X軸角度(橫滾)
Angle[1] = ReadW(); //Y軸角度(俯仰)
Angle[2] = ReadW(); //Z軸角度(偏航)
AngleDeg[0] = (float)Angle[0] / 100;
AngleDeg[1] = (float)Angle[1] / 100;
AngleDeg[2] = (float)Angle[2] / 100;
if (AngleDeg[2]<0) AngleDeg[2] += 360; //將航向值轉化到0---360度區間
printf("ANGLE X:%d Y:%d Z:%d \r\n", Angle[0], Angle[1], Angle[2]);
printf("AngleDeg X:%.2f Y:%.2f Z:%.2f \r\n", AngleDeg[0], AngleDeg[1], AngleDeg[2]);
break;
case 0x73: //標識為 地磁幀
BufC = uartRead(); //幀長度,可不用
BufC = uartRead(); //效驗位
Mag[0] = ReadW(); //X軸
Mag[1] = ReadW(); //Y軸
Mag[2] = ReadW(); //Z軸
/*地磁設置為2.5Ga*/
/*得到以"Gauss"為單位的地磁*/
MagGauss[0] = (float)Mag[0] / 660;
MagGauss[1] = (float)Mag[1] / 660;
MagGauss[2] = (float)Mag[2] / 660;
printf("Mag X:%d Y:%d Z:%d \r\n", Mag[0], Mag[1], Mag[2]);
printf("MagGauss X:%.2f Y:%.2f Z:%.2f \r\n", MagGauss[0], MagGauss[1], MagGauss[2]);
break;
case 0x74: //標識為溫度、氣壓幀
BufC = uartRead(); //幀長度,可不用
BufC = uartRead(); //效驗位
Temper = ReadW() / 10; //X軸
BufW = ReadW(); //氣壓低16位
Pressure = (int32_t)(((uint32_t)(ReadW() << 16))|BufW);
printf("Temperature(Degree):%.2f Pressure(Pa):%d \r\n", Temper, Pressure);
break;
case 0x75: // 標識為高度幀
BufC = uartRead(); //幀長度,可不用
BufC = uartRead(); //效驗位
BufW = ReadW(); //高度低16位
/*得到以"CM"為單位的海拔高度*/
Altitude = (int32_t)(((uint32_t)(ReadW() << 16))|BufW);
printf("Altitude(cm):%d \r\n", Altitude);
break;
default: break;
}
}
}
}
}
}
復制代碼
所有資料51hei提供下載:
陀螺儀資料.rar
(1.09 MB, 下載次數: 23)
2018-6-2 03:45 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
easyming
時間:
2019-9-2 10:12
好資料,正需要!!!
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1