STM32 HAL库 SPI 驱动LISDHTR+源码

一款低功耗加速度计LIS3DH,该加速度计有两种通信模式,IIC和SPI方式。IIC通信方式搞了一下 就好了,但是SPI方式针扎了两天才做出来,现在和大家分享一下心得。

开发环境:MDK keil5 

使用芯片:STM32L051C8T6

使用硬件:SPI1,PA4=CS,PA5=CLK,PA6=SDO,PA7=SDA

一、寄存器读写流程

SPI 读写操作

LIS3DTR SPI引脚图

SPI驱动LIS3DHTR分为三线驱动和四线驱动。

SPI从属时序图

从上图中可以看出当SPI读写前,先要将自己设置的CS引脚拉低,我自己在cubemx中将PA4设为CS引脚(这个可以自己设置没有要求)。

下面来介绍下CPOL和CPHA到底有什么用。

CPOL就是决定SCLK这个时钟信号线,在没有数据传输的时候的电平状态。

CPOL=0:空闲状态时,SCLK保持低电平

CPOL=1:空闲状态时,SCLK保持高电平

CPHA就是决定数据位传输是从第一个时钟(SCLK)边沿开始,还是第二个从二个时钟(SCLK)边沿开始。

CPHA=0:数据从第一个时钟(SLCK)边沿开始采集

CPHA=1:数据从第二个时钟(SLCK)边沿开始采集

从LIS3DH的数据手册里得知(看上图)应该位CPOL=1 ,CPHA=1;这样在cubmx中配置为LSI3DH的SPI读写操作

传感器地址读取

正确读出的地址应为0x33,如果是0xFF的话,那可能是你的SPI没有配置好。

寄存器设置说明

将得到的加速度值转成成角度 

效果展示图

  • 12
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值