SC7A20(士兰微-加速度传感器)示例

这篇具有很好参考价值的文章主要介绍了SC7A20(士兰微-加速度传感器)示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

        做个笔录,最近项目使用了此款gsensor,实现了简单示例

一、环境:

        硬件平台(RTL8762DK)
        IDE:keil5.29

1、原理图
sc7a20e,# 传感器,# Bulethooth,物联网,arm开发 

二、代码:

 1、sc7a20.h

/**
*********************************************************************************************************
*               Copyright(c) 2018, Realtek Semiconductor Corporation. All rights reserved.
*********************************************************************************************************
* @file     io_adc.h
* @brief
* @details
* @author   yuan
* @date     2018-12-07
* @version  v1.0
*********************************************************************************************************
*/

#ifndef __SC7A20_H
#define __SC7A20_H

#ifdef __cplusplus
extern "C" {
#endif

/* Includes ------------------------------------------------------------------*/
#include "rtl876x_i2c.h"
#include "board.h"
#include "gsensor.h"



/* Defines ------------------------------------------------------------------*/
/***Before using the driver, configure it according to the actual cable connection******/
/**The SDO pin of SC7A20 is grounded to 0****************/
/**The SDO pin of SC7A20 is connected to power supply: 1****************/
#define SL_SC7A20_SDO_VDD_GND            0
/*****************************************/

/***Before using the driver, configure the driver based on the actual IIC***/
/**The IIC interface address type of the SC7A20 is 7bits: 0****/
/**The IIC interface address type of the SC7A20 is 8bits: 1****/
#define SL_SC7A20_IIC_7BITS_8BITS        0
/*****************************************/

#if SL_SC7A20_SDO_VDD_GND==0
#define SL_SC7A20_IIC_7BITS_ADDR        0x18
#define SL_SC7A20_IIC_8BITS_WRITE_ADDR  0x30
#define SL_SC7A20_IIC_8BITS_READ_ADDR   0x31
#else
#define SL_SC7A20_IIC_7BITS_ADDR        0x19
#define SL_SC7A20_IIC_8BITS_WRITE_ADDR  0x32
#define SL_SC7A20_IIC_8BITS_READ_ADDR   0x33
#endif

#if SL_SC7A20_IIC_7BITS_8BITS==0
#define SL_SC7A20_IIC_ADDRESS        SL_SC7A20_IIC_7BITS_ADDR
#else
#define SL_SC7A20_IIC_WRITE_ADDRESS  SL_SC7A20_IIC_8BITS_WRITE_ADDR
#define SL_SC7A20_IIC_READ_ADDRESS   SL_SC7A20_IIC_8BITS_READ_ADDR
#endif


//Reg Table
#define SC7A20_CHIP_ID_ADDR		   0x0F
#define SC7A20_CHIP_ID         	 0x11

#define SC7A20_ADDRESS           SL_SC7A20_IIC_ADDRESS
#define SC7A20_CTRL_REG1		   0x20
#define SC7A20_CTRL_REG2		   0x21
#define SC7A20_CTRL_REG3		   0x22
#define SC7A20_CTRL_REG4		   0x23
#define SC7A20_CTRL_REG5		   0x24
#define SC7A20_CTRL_REG6		   0x25

#define SC7A20_ADDR_STATUS_REG	   0x27

#define SC7A20_REG_X_OUT_LOW       0x28
#define SC7A20_REG_X_OUT_HIGH      0x29
#define SC7A20_REG_Y_OUT_LOW       0x2A
#define SC7A20_REG_Y_OUT_HIGH      0x2B
#define SC7A20_REG_Z_OUT_LOW       0x2C
#define SC7A20_REG_Z_OUT_HIGH      0x2D

#define SC7A20_INT1_CONF_REG       0x30
#define SC7A20_INT1_STATUS_REG     0x31
#define SC7A20_INT1_THR_REG        0x32
#define SC7A20_INT1_TIME_REG       0x33

#define SC7A20_INT2_CONF_REG       	0x34
#define SC7A20_INT2_STATUS_REG     	0x35
#define SC7A20_INT2_THR_REG       	0x36
#define SC7A20_INT2_TIME_REG     		0x37

#define SC7A20_CLICK_CFG_REG       	0x38
#define SC7A20_CLICK_SRC_REG       	0x39
#define SC7A20_CLICK_THS_REG     		0x3A
#define SC7A20_TIME_LIMIT_REG       0x3B
#define SC7A20_TIME_LATENCY_REG     0x3C
#define SC7A20_TIME_WINDOW_REG     	0x3D




uint8_t sc7a20_write(uint8_t regAddr, uint8_t data);
uint8_t sc7a20_read(uint8_t regAddr, uint8_t *buf);
void sc7a20_gsensor_init(void);
uint8_t sc7a20_id_get(void);
void sc7a20_outdata_get(void);
int16_t drv_12bitComplement1(uint8_t msb, uint8_t lsb);
int16_t drv_12bitComplement2(uint8_t msb, uint8_t lsb);

#ifdef __cplusplus
}
#endif

#endif

  2、sc7a20.c文章来源地址https://www.toymoban.com/news/detail-575059.html

/**
*********************************************************************************************************
*               Copyright(c) 2018, Realtek Semiconductor Corporation. All rights reserved.
*********************************************************************************************************
* @file     io_adc.c
* @brief    This file provides demo code of adc continuous mode.
* @details
* @author   yuan
* @date     2018-12-07
* @version  v1.0
*********************************************************************************************************
*/

/* Includes ------------------------------------------------------------------*/
#include "sc7a20.h"


/* Globals ------------------------------------------------------------------*/


static uint8_t sc7a20_write_reg(uint8_t regAddr, uint8_t data)
{
	return i2c_write(regAddr, data);
}

static uint8_t sc7a20_read_reg(uint8_t regAddr, uint8_t *buf)
{
	return i2c_read(regAddr, buf, 1);
}

static uint8_t sc7a20_multiRead_reg(uint8_t regAddr, uint8_t *buf, uint8_t len)
{	
	return i2c_read(regAddr, buf, len);
}

uint8_t sc7a20_id_get(void)
{
    uint8_t sc7a20_chip_id = 0;
    uint8_t reg_addr = SC7A20_CHIP_ID_ADDR;
    //I2C_RepeatRead(I2C0, &reg_addr, 1, &sc7a20_chip_id, 1);
	sc7a20_read_reg(reg_addr, &sc7a20_chip_id);
    return sc7a20_chip_id;
}

void sc7a20_outdata_get(void)
{
    uint8_t reg_addr = SC7A20_REG_X_OUT_LOW;
    //I2C_RepeatRead(I2C0, &reg_addr, 1, GSensor_Data.OutData, 6);
	sc7a20_multiRead_reg(reg_addr|0x80, GSensor_Data.OutData, 6);
}

int16_t drv_12bitComplement1(uint8_t msb, uint8_t lsb)
{
    // 量程8g 4mg/digit
    return (((int16_t)(msb << 8 | lsb)) >> 4) << 2;
}

int16_t drv_12bitComplement2(uint8_t msb, uint8_t lsb)
{
    uint16_t temp = 0;
    int16_t accd = 0;
    temp &= 0x0000;
    temp |= msb;
    temp <<= 8;
    temp &= 0xff00;
    temp |= lsb;
    // 负
    if (temp & 0x8000)
    {
        temp >>= 4;
        temp |= 0xf000;
    }
    else
    {
        temp >>= 4;
        temp &= 0x0fff;
    }
    accd = temp * 1;
    return accd << 2;
}

void drv_sc7a20tr_read(int16_t *accel_X, int16_t *accel_Y, int16_t *accel_Z)
{
	ui

到了这里,关于SC7A20(士兰微-加速度传感器)示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 士兰微六轴陀螺仪SC7I22在AR/VR头显设备中的应用

         士兰微是一家集成电路和半导体制造商。它专注于研发和生产高性能的MEMS传感器,如加速度计、陀螺仪和组合传感器。这些高精度设备广泛应用于消费电子、汽车、工业以及AR/VR等领域。通过技术创新,士兰微旨在提供可靠的传感器解决方案,以促进智能设备的发展。

    2024年02月21日
    浏览(45)
  • 【Android App】物联网中查看手机支持的传感器及实现摇一摇功能-加速度传感器(附源码和演示 超详细)

    需要源码请点赞关注收藏后评论区留言~~~ 传感器Sensor是一系列感应器的总称,是Android设备用来感知周围环境和运动信息的工具。 因为具体的感应信息依赖于相关硬件,所以虽然Android定义了众多感应器,但是并非每部手机都能支持这么多感应器。 传感器一般借助于硬件监听

    2024年02月09日
    浏览(53)
  • 【雕爷学编程】MicroPython动手做(20)——掌控板之三轴加速度5

    知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED显示屏、RGB灯、加速度计、麦克风、光线传感器

    2024年02月14日
    浏览(39)
  • 怎么加速网速?如何加速网络下载速度真正提高网速

    怎么加速网速?我们经常在下载东西的时候,会觉得网速很不给力。其实这不仅关系到你的带宽,还关系到你的电脑。下面我介绍一个比较适合新手的方法,使我们计算机发挥到最佳下载模式。达到宽带最大利用率。 软媒魔方电脑大师 V6.25 绿色免费版 类型: 系统增强 大小:

    2024年02月07日
    浏览(44)
  • 跑出创新加速度,AI基础软件成AIGC产业发展加速器

    2023年中国国际服务贸易交易会(以下简称“服贸会”)受世界瞩目正在火热进行,9月4日,服贸会专题论坛之“2023中国AIGC创新发展论坛” 在大会期间成功举办, 九章云极DataCanvas公司副总裁周晓凌受邀出席论坛,并发表题为“AI基础软件促进大模型与AIGC应用快速发展”的精

    2024年02月09日
    浏览(54)
  • [足式机器人]Part3 机构运动学与动力学分析与建模 Ch00-5 刚体的加速度与角加速度

    本文仅供学习使用,总结很多本现有讲述运动学或动力学书籍后的总结,从矢量的角度进行分析,方法比较传统,但更易理解,并且现有的看似抽象方法,两者本质上并无不同。 2024年底本人学位论文发表后方可摘抄 若有帮助请引用 本文参考: . 食用方法 求解逻辑:速度与

    2024年01月25日
    浏览(69)
  • ABB、FANUC机器人点位加速度用法

    机器人在点位与点位之间的运动,会存在速度上的变化,加速度指令的添加可以减小机器人在运动中,由高速到低速间惯性的带来的影响,修正机器人的路径误差,让机器人的运动更加顺滑。 ABB机器人加速度指令为ACCSET指令 ACCSET指令中的第一个参数是设置加速度,第二个参

    2024年04月16日
    浏览(72)
  • 自动驾驶仿真:基于Carsim开发的加速度请求模型

    1、自动驾驶行业中,算法端对于纵向控制的功能预留接口基本都是 加速度 ,我们需要给控制器仿真加速度的信号,控制器才会实现对纵向功能的控制。 2、Carsim或者其他动力学软件,主要提供者节气门开度和主缸压力进行控制。我们在进行联合仿真时,往往都要通过PID的方

    2024年02月11日
    浏览(35)
  • 「实在RPA·烟草数字员工」助力烟草行业数字化转型加速度

    烟草行业作为烟草产业链上重要一环,外部连接烟草工业企业、零售客户、消费者,内部包含营销、专卖、烟叶、物流等诸多业务,信息系统众多,企业数据量庞大。因此,清楚地了解自身存在的痛点,找到适合自身业务需求的转型路径,搭建一个高适配的灵活全面的数字化

    2024年02月06日
    浏览(144)
  • 首次落地零担快运!商用车自动驾驶跑出交付加速度

    即将迈入2024年,还活着的自动驾驶玩家,身上有两个显著标签: 选对了细分赛道、会玩 。 10月以来,Cruise宣布在美国德州奥斯汀、休斯顿、亚利桑那州凤凰城和加州旧金山全面停止所有自动驾驶出租车队运营服务,通用汽车计划暂停生产全自动驾驶车辆Cruise Origin,都意味着

    2024年01月20日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包