资源简介

该资源描述了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个文件信息

评论

共有 条评论