LSM6DSV16XTR STM32 硬件spi驱动

news/2025/1/15 10:07:23 标签: stm32, 嵌入式硬件, 单片机

在使用LSM6DSV16XTR时硬件i2c接口被占用,不想要共用其他设备所以就把芯片的接口从i2c改为spi接口。硬件接线如下:

spi配置如下:

在驱动代码中做如下更改:

int32_t platform_write(void *handle, uint8_t reg, const uint8_t *bufp, uint16_t len)
{
	uint8_t address = reg & 0x7F;
//  HAL_I2C_Mem_Write(handle, LSM6DSV16X_I2C_ADD_L, reg, I2C_MEMADD_SIZE_8BIT, (uint8_t*) bufp, len, 0xFF);
	HAL_GPIO_WritePin(GYRO_CS_GPIO_Port,  GYRO_CS_Pin, GPIO_PIN_RESET);

	HAL_SPI_Transmit(handle, &address, 1, 0xffff);
	HAL_SPI_Transmit(handle, bufp, len, 0xffff);

	HAL_GPIO_WritePin(GYRO_CS_GPIO_Port,  GYRO_CS_Pin, GPIO_PIN_SET);
	
  return 0;
}


int32_t platform_read(void *handle, uint8_t reg, uint8_t *bufp, uint16_t len)
{
	uint8_t address = reg | 0x80;
//  HAL_I2C_Mem_Read(handle, LSM6DSV16X_I2C_ADD_L, reg, I2C_MEMADD_SIZE_8BIT, bufp, len, 0xFF);
	HAL_GPIO_WritePin(GYRO_CS_GPIO_Port,  GYRO_CS_Pin, GPIO_PIN_RESET);

	HAL_SPI_Transmit(handle, &address, 1, 0xffff);
	
	HAL_SPI_Receive(handle, bufp, len, 0xffff);

	HAL_GPIO_WritePin(GYRO_CS_GPIO_Port,  GYRO_CS_Pin, GPIO_PIN_SET);
	
  return 0;
}

测试ID读取成功。


http://www.niftyadmin.cn/n/5823825.html

相关文章

IDEA编译器集成Maven环境以及项目的创建(2)

选择:“File” ---> "Othoer Setting" --> "Settings for New Projects..." --->搜索“Maven” 新建项目 利用maven命令去编译这个项目 利用maven去打包

贪心算法详细讲解(沉淀中)

文章目录 1. 什么是贪心算法?(贪婪鼠目寸光)经典例题1.1.1 找零问题1.1.2最小路径和1.1.3 背包问题 2.贪心算法的特点2.1 证明例1 3.学习贪心的方向心得体会 1. 什么是贪心算法?(贪婪鼠目寸光) 贪心策略&a…

ES6的高阶语法特性

一、模板字符串的高级用法 1.1.模板字符串的嵌套 模板字符串的嵌套允许在一个模板字符串内部再嵌入一个或多个模板字符串。这种嵌套结构在处理复杂数据结构或生成具有层级关系的文本时非常有用。 1. 嵌套示例 假设我们有一个包含多个对象的数组,每个对象都有名称、…

Golang——GPM调度器

本文详细介绍Golang的GPM调度器,包括底层源码及其实现,以及一些相关的补充知识。 文章目录 前情提要并发与并行并行 (Parallel)并发 (Concurrency)关键区别 进程和线程的区别协程解决的问题协程的优势 Go的并发模型-CSPGo的调度模型-GPM源码Goroutineg 结…

数仓建模(三)建模三步走:需求分析、模型设计与数据加载

本文包含: 数据仓库的背景与重要性数据仓库建模的核心目标本文结构概览:需求分析、模型设计与数据加载 目录 第一部分:需求分析 1.1 需求分析的定义与目标 1.2 需求分析的步骤 1.2.1 业务需求收集 1.2.2 技术需求分析 1.2.3 成果输出…

数据结构和算法-07平衡二叉树-01

树的发展历程 来认识我们的树结构 平衡二叉树 如果得知二叉树是否平衡,直接的方法是左右子树的高度值不大于1。我们在节点中添加height指标用来检验二叉树的高度差。 规范:如果为空,高度 0。默认产生一个节点高度为: 1 tips&…

微服务之松耦合

参考:https://microservices.io/post/architecture/2023/03/28/microservice-architecture-essentials-loose-coupling.html There’s actually two different types of coupling: runtime coupling - influences availability design-time coupling - influences…

K8S--配置存活、就绪和启动探针

目录 1 本人基础环境2 目的3 存活、就绪和启动探针介绍3.1 存活探针3.2 就绪探针3.3 启动探针 4 探针使用场景4.1 存活探针4.2 就绪探针4.3 启动探针 5 配置存活、就绪和启动探针5.1 定义存活探针5.2 定义一个存活态 HTTP 请求接口5.3 定义 TCP 的就绪探针、存活探测5.4 定义 g…