资源简介
该资源描述了HI226和HI229 6轴陀螺仪模块在STM32上的应用,可以帮助用户快速入门,掌握陀螺仪的基本应用
代码片段和文件信息
#include
#include
#include “packet.h“
#include “imu_data_decode.h“
static packet_t RxPkt; /* used for data receive */
uint32_t frame_count;
uint8_t bitmap;
__align(4) receive_imusol_packet_t receive_imusol;
__align(4) receive_gwsol_packet_t receive_gwsol;
static int stream2int16(int *destuint8_t *src)
{
dest[0] = (int16_t)(src[0] | src[1] << 8);
dest[1] = (int16_t)(src[2] | src[3] << 8);
dest[2] = (int16_t)(src[4] | src[5] << 8);
return 0;
}
/* callback function of when recv a data frame successfully */
static void on_data_received(packet_t *pkt)
{
int temp[3] = {0};
int i = 0;
int offset = 0;
uint8_t *p = pkt->buf;
if(pkt->type != 0xA5)
{
return;
}
while(offset < pkt->payload_len)
{
if(offset == 0)
{
frame_count++;
bitmap = 0;
}
switch(p[offset])
{
case kItemID:
bitmap |= BIT_VALID_ID;
receive_imusol.id = p[1];
offset += 2;
break;
case kItemAccRaw:
bitmap |= BIT_VALID_ACC;
stream2int16(temp p + offset + 1);
receive_imusol.acc[0] = (float)temp[0] / 1000;
receive_imusol.acc[1] = (float)temp[1] / 1000;
receive_imusol.acc[2] = (float)temp[2] / 1000;
offset += 7;
break;
case kItemGyrRaw:
bitmap |= BIT_VALID_GYR;
stream2int16(temp p + offset + 1);
receive_imusol.gyr[0] = (float)temp[0] / 10;
receive_imusol.gyr[1] = (float)temp[1] / 10;
receive_imusol.gyr[2] = (float)temp[2] / 10;
offset += 7;
break;
case kItemMagRaw:
bitmap |= BIT_VALID_MAG;
stream2int16(temp p + offset + 1);
receive_imusol.mag[0] = (float)temp[0] / 10;
receive_imusol.mag[1] = (float)temp[1] / 10;
receive_imusol.mag[2] = (float)temp[2] / 10;
offset += 7;
break;
case kItemRotationEul:
bitmap |= BIT_VALID_EUL;
stream2int16(temp p + offset + 1);
receive_imusol.eul[1] = (float)temp[0] / 100;
receive_imusol.eul[0] = (float)temp[1] / 100;
receive_imusol.eul[2] = (float)temp[2] / 10;
offset += 7;
break;
case kItemRotationQuat:
bitmap |= BIT_VALID_QUAT;
memcpy((void *)receive_imusol.quat p + offset + 1 sizeof( receive_imusol.quat));
offset += 17;
break;
case kItemPressure:
offset += 5;
break;
case KItemIMUSOL:
bitmap = BIT_VALID_ALL;
receive_imusol.id =p[offset + 1];
memcpy((void *) receive_imusol.acc p + 12 siz
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 513 2020-07-29 10:58 .gitignore
目录 0 2020-07-29 10:58 app\
目录 0 2020-07-29 10:58 app\inc\
文件 1703 2020-07-29 10:58 app\inc\imu_data_decode.h
文件 542 2020-07-29 10:58 app\inc\packet.h
目录 0 2020-07-29 10:58 app\src\
文件 3881 2020-07-29 10:58 app\src\imu_data_decode.c
文件 3605 2020-07-29 10:58 app\src\packet.c
目录 0 2020-07-29 10:58 CORE\
文件 16489 2020-07-29 10:58 CORE\core_cm3.c
文件 83896 2020-07-29 10:58 CORE\core_cm3.h
文件 15145 2020-07-29 10:58 CORE\startup_stm32f10x_hd.s
文件 1065 2020-07-29 10:58 Readme.md
目录 0 2020-07-29 10:58 STM32F10x_FWLib\
目录 0 2020-07-29 10:58 STM32F10x_FWLib\inc\
文件 8762 2020-07-29 10:58 STM32F10x_FWLib\inc\misc.h
文件 19790 2020-07-29 10:58 STM32F10x_FWLib\inc\stm32f10x_gpio.h
文件 29725 2020-07-29 10:58 STM32F10x_FWLib\inc\stm32f10x_rcc.h
文件 16136 2020-07-29 10:58 STM32F10x_FWLib\inc\stm32f10x_usart.h
目录 0 2020-07-29 10:58 STM32F10x_FWLib\src\
文件 6821 2020-07-29 10:58 STM32F10x_FWLib\src\misc.c
文件 22571 2020-07-29 10:58 STM32F10x_FWLib\src\stm32f10x_gpio.c
文件 49801 2020-07-29 10:58 STM32F10x_FWLib\src\stm32f10x_rcc.c
文件 37250 2020-07-29 10:58 STM32F10x_FWLib\src\stm32f10x_usart.c
目录 0 2020-07-29 10:58 SYSTEM\
目录 0 2020-07-29 10:58 SYSTEM\delay\
文件 7668 2020-07-29 10:58 SYSTEM\delay\delay.c
文件 1915 2020-07-29 10:58 SYSTEM\delay\delay.h
目录 0 2020-07-29 10:58 SYSTEM\sys\
文件 839 2020-07-29 10:58 SYSTEM\sys\sys.c
文件 2731 2020-07-29 10:58 SYSTEM\sys\sys.h
............此处省略13个文件信息
- 上一篇:校园二手市场交易系统含代码
- 下一篇:vtk绘图 png jpg
相关资源
- ADS1256 包含.c.h文件 stm32f407 SPI
- stm32 f407 各个模块引脚整理
- stm32f4+emwin电子日历
- STM32F407系列ZG/VG/IG原理图封装全
- STM32 tcp/ip通讯
- STM32F103C6简单的应用原理图
- stm32单片机lcd12864串行程序
- stm32二值化
- stm32写的ads1115采集电压程序
- STM32 实现二维码生成 液晶屏显示
- STM3210E-EVAL原理图
- STM32f103驱动SSD1306的OLED0.96寸演示动画
- 德飞莱STM32开发板尼莫M3S V2.3电路图
- 基于STM32的SPI驱动HMC5983的代码
- 三轴陀螺仪MPU6050基于STM32F103的IIC驱动
- RC522射频模块充值饭卡,水卡
- STM32F105_Temp工程模板
- STM32F407 标准库 实现6路串口配置,D
- 基于STM32的室内空气质量检测
- OpenGL实现机器人运动下蹲、起身、走
- 基于遗传算法的避障轨迹规划六自由
- emWin软键盘
- STM32入门 stm32深入浅出
- STM32F407 ADC1双通道采样,DMA传输程序库
- STM32F103增量式编码器的采集以及处理
- max7219驱动数码管fro stm32
- OpenGL绘制3D机器人
- stm32控制两个nrf24l01之间的通信
- 五轴机器人控制器
- stm32f427工程demo
评论
共有 条评论