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

ESP32s3与Lsm6ds3通信---i2c【开源】

接线

在这里插入图片描述

ESPS3,I2C的初始化

#ifdef __cplusplus
extern "C" {
#endif
#define I2C_MASTER_SCL_IO           CONFIG_I2C_MASTER_SCL      /*!< GPIO number used for I2C master clock */
#define I2C_MASTER_SDA_IO           CONFIG_I2C_MASTER_SDA      /*!< GPIO number used for I2C master data  */
#define I2C_MASTER_NUM              0                          /*!< I2C master i2c port number, the number of i2c peripheral interfaces available will depend on the chip */
#define I2C_MASTER_FREQ_HZ          1000000                     /*!< I2C master clock frequency */
#define I2C_MASTER_TX_BUF_DISABLE   0                          /*!< I2C master doesn't need buffer */
#define I2C_MASTER_RX_BUF_DISABLE   0                          /*!< I2C master doesn't need buffer */
#define I2C_MASTER_TIMEOUT_MS       1000
#define LED_GPIO_1  GPIO_NUM_25
static esp_err_t i2c_master_init(void);
#ifdef __cplusplus
}
#endif
/*** @brief i2c master initialization*/
static esp_err_t i2c_master_init(void){i2c_config_t conf;conf.mode = I2C_MODE_MASTER;conf.sda_io_num = (gpio_num_t)I2C_MASTER_SDA_IO;conf.scl_io_num = (gpio_num_t)I2C_MASTER_SCL_IO;conf.sda_pullup_en = GPIO_PULLUP_ENABLE;conf.scl_pullup_en = GPIO_PULLUP_ENABLE;conf.master.clk_speed = I2C_MASTER_FREQ_HZ;conf.clk_flags = 0;ESP_ERROR_CHECK(i2c_param_config(I2C_NUM_0, &conf));return i2c_driver_install(I2C_NUM_0, I2C_MODE_MASTER, 0, 0, 0);
}

主要任务

该任务主要是把Lsm6ds3的数据读取出来,并打印

void lsm6ds3(void *pvParameters){// Initialize deviceif (imu.begin() == 0) {ESP_LOGE(TAG, "Connection fail");vTaskDelete(NULL);}else{ESP_LOGE(TAG, "Connection successfully");		}// double accX, accY, accZ;// double gyroX, gyroY, gyroZ;// _getMotion6(&accX, &accY, &accZ, &gyroX, &gyroY, &gyroZ);// ESP_LOGE(TAG,"%f %f %f - %f %f %f\n", accX, accY, accZ, gyroX, gyroY, gyroZ);// vTaskDelete(NULL);// Set Kalman and gyro starting angledouble accX, accY, accZ;double gyroX, gyroY, gyroZ;int ioioi =0;while(1){_getMotion6(&accX, &accY, &accZ, &gyroX, &gyroY, &gyroZ);gpio_set_level(GPIO_NUM_48, ioioi);ioioi = !ioioi;//     int64_t time_since_boot = esp_timer_get_time();//ESP_LOGI("TIME", "Time since boot: %lld microseconds", time_since_boot);ESP_LOGE(TAG,"%f %f %f - %f %f %f", accX, accY, accZ, gyroX, gyroY, gyroZ);//printf("%f %f %f - %f %f %f/n", accX, accY, accZ, gyroX, gyroY, gyroZ);}
}

核心代码

主要就是把esp-idf写好的I2C接口,和LSM6DS3的驱动接上,分别是读和写数据

int LSM6DS3::readRegisters(uint8_t address, uint8_t* data, size_t length)
{esp_err_t ret = i2c_master_write_read_device(I2C_NUM_0, CONFIG_I2C_ADDR,&address, 1, data, length, 100 / portTICK_RATE_MS);return 1;
}int LSM6DS3::writeRegister(uint8_t address, uint8_t value)
{uint8_t write_buf[2] = { address, value };esp_err_t ret = i2c_master_write_to_device(I2C_NUM_0, CONFIG_I2C_ADDR,write_buf, sizeof(write_buf), 100 / portTICK_RATE_MS);return 1;
}

开源地址

链接:https://pan.baidu.com/s/1Tbnz3A4ykt20kQf2UcANWA
提取码:oy8u
–来自百度网盘超级会员V4的分享

相关文章:

  • 单目物体测距
  • Linux 性能优化基础
  • 2024050901-重学 Java 设计模式《实战访问者模式》
  • DB-Engines Ranking 2024年6月数据库排行
  • 大屏幕互动系统PHP源码 附动态背景图和配乐素材 含搭建教程
  • 【乐吾乐2D可视化组态编辑器】在线使用,快速入门
  • yolov8摔倒检测(包含数据集+训练好的模型)
  • 实现一个vue js小算法 选择不同的时间段 不交叉
  • 数智化招采平台多层级多租户能力的价值
  • php文件包含
  • three.js 第四节 - 创建顶点(索引的使用)
  • 【CS.PL】Lua 编程之道: 基础语法和数据类型 - 进度16%
  • HBase数据库面试知识点:第一部分 - 基础概念与特点(持续更新中)
  • 电商API接口的采集实例:京东商品详情API接口的采集过程和步骤分析
  • 二叉树的算法题目
  • 0x05 Python数据分析,Anaconda八斩刀
  • Akka系列(七):Actor持久化之Akka persistence
  • es6
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Iterator 和 for...of 循环
  • JavaScript 一些 DOM 的知识点
  • JavaScript学习总结——原型
  • java第三方包学习之lombok
  • JAVA之继承和多态
  • js中的正则表达式入门
  • python_bomb----数据类型总结
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • ucore操作系统实验笔记 - 重新理解中断
  • yii2权限控制rbac之rule详细讲解
  • 不上全站https的网站你们就等着被恶心死吧
  • 初识 webpack
  • 京东美团研发面经
  • 聊聊hikari连接池的leakDetectionThreshold
  • 用jquery写贪吃蛇
  • Spring第一个helloWorld
  • # dbt source dbt source freshness命令详解
  • #Lua:Lua调用C++生成的DLL库
  • #QT(串口助手-界面)
  • (003)SlickEdit Unity的补全
  • (2015)JS ES6 必知的十个 特性
  • (4)(4.6) Triducer
  • (Forward) Music Player: From UI Proposal to Code
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (java)关于Thread的挂起和恢复
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (分类)KNN算法- 参数调优
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (蓝桥杯每日一题)love
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (三十五)大数据实战——Superset可视化平台搭建
  • (原创)可支持最大高度的NestedScrollView
  • .md即markdown文件的基本常用编写语法
  • .net 发送邮件
  • .NET_WebForm_layui控件使用及与webform联合使用
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)