当前位置: 首页 > article >正文

陀螺仪BMI323驱动开发测试(基于HAL库SPI通信)

参考资料

在这里插入图片描述

编写代码

读取芯片ID
void BMI160_Init(void)
{
    uint16_t chipID = BMI323_read(BMI160_REG_CHIP_ID);
    debug("BMI323芯片ID为0x%x;", chipID);
    if (chipID != 0x43)
    {
        debug("未检测到BMI323;");
    }
    else
        debug("检测到陀螺仪BMI323;");
    u8 buf_config[2] = {0xC9, 0x70};
    BMI160_WriteBytes(0x21, buf_config, 2);
    uint16_t state = BMI323_read(0x02);
    debug("BMI323传感器状态为0x%x;", state);
    prev_yaw = agv_currentAngle.f;
}
uint16_t BMI323_read(uint8_t reg)
{
    uint16_t value;
    HAL_GPIO_WritePin(BMI160_CS_GPIO_Port, BMI160_CS_Pin, GPIO_PIN_RESET);
    SPI_TransferByte(reg | 0x80);
    value = SPI_TransferByte(0) << 8; /* 读取高8位字节 */
    value |= SPI_TransferByte(0);     /* 读取低8位字节 */
    HAL_GPIO_WritePin(BMI160_CS_GPIO_Port, BMI160_CS_Pin, GPIO_PIN_SET);
    return value;
}
uint8_t SPI_TransferByte(uint8_t data)
{
    uint8_t rxData;
    HAL_SPI_TransmitReceive(&hspi2, &data, &rxData, 1, HAL_MAX_DELAY);
    return rxData;
}
设置传感器模式
获取原始数据

测试

在这里插入图片描述


http://www.kler.cn/a/386336.html

相关文章:

  • 软件工程笔记二—— 软件生存期模型
  • PHP反序列化_3-漏洞利用
  • Keil基于ARM Compiler 5的工程迁移为ARM Compiler 6的工程
  • 基于Spring Boot与Redis的令牌主动失效机制实现
  • Android 10 默认授权安装app运行时权限(去掉运行时所有权限授权弹窗)
  • 测试工程师简历「精选篇」
  • 大数据-213 数据挖掘 机器学习理论 - KMeans Python 实现 距离计算函数 质心函数 聚类函数
  • Python使用PDF相关组件案例详解
  • 从截图到代码:screenshot-to-code开源项目实践指南
  • 内网项目,maven本地仓库离线打包,解决Cannot access central in offline mode?
  • spring boot 统一异常处理
  • 大模型学习笔记------CLIP模型解读与思考
  • Redis-07 Redis哨兵
  • 2025斯诺克器材与用品展,2025郑州台球器材展会3月举办
  • 如何利用内部开源加速创新
  • SAP_MM负库存简介
  • 基于Spring Boot的网上商品订单转手系统设计与实现,LW+源码+讲解
  • Webserver(5.2)网页服务器框架
  • Chromium127编译指南 Linux篇 - 获取Chromium源码(四)
  • 【前端】Svelte:匿名插槽与具名插槽
  • 深度学习:BERT 详解
  • Flink API 的层次结构
  • 机器学习—神经网络如何高效实现
  • 数据采集器与物联网网关的区别
  • 基于Springboot+Vue的游乐园管理系统 (含源码数据库)
  • C#(asp.net)民宿客房管理系统-计算机设计毕业源码76233