AS5600角度读取

1.相关定义

#define As5600_Addr 0x36
#define RawAngle_Addr 0x0C#define I2C_WRITE_MODE      0
#define I2C_READ_MODE       1
#define ACK                 0                       /*!< I2C ack value */
#define NACK                1                       /*!< I2C nack value */
#define ACK_CHECK_ENABLE    1
#define ACK_CHECK_DISABLE   0

2.IIC驱动编写


初始化程序:


esp_err_t As5600_Init(int sda_io, int scl_io)
{esp_err_t result;i2c_config_t conf = {.mode = I2C_MODE_MASTER,.sda_io_num = sda_io,.sda_pullup_en = GPIO_PULLUP_ENABLE,.scl_io_num = scl_io,.scl_pullup_en = GPIO_PULLUP_ENABLE,.master.clk_speed = 100000,};result = i2c_param_config(I2C_NUM_0, &conf);if (result != ESP_OK){return result;}//安装驱动return i2c_driver_install(I2C_NUM_0, conf.mode, 0, 0, 0);
}

读取原始角度,高位信息在0x0c,低位信息在0x0d,移位时需要注意。

void ReadAngle()
{uint8_t angle_high = 0;uint8_t angle_low = 0;uint16_t result = 0;float angle=0;i2c_cmd_handle_t cmd;//读取HighAddrcmd = i2c_cmd_link_create();i2c_master_start(cmd);i2c_master_write_byte(cmd, As5600_Addr << 1 | I2C_WRITE_MODE, ACK_CHECK_ENABLE);i2c_master_write_byte(cmd, RawAngle_Addr, ACK_CHECK_ENABLE);i2c_master_stop(cmd);i2c_master_cmd_begin(I2C_NUM_0, cmd, 1000 / portTICK_PERIOD_MS);i2c_cmd_link_delete(cmd);vTaskDelay(1 / portTICK_PERIOD_MS);cmd = i2c_cmd_link_create();i2c_master_start(cmd);i2c_master_write_byte(cmd, As5600_Addr << 1 | I2C_READ_MODE, ACK_CHECK_ENABLE);i2c_master_read_byte(cmd, &angle_high, ACK); //0x0c是高位i2c_master_read_byte(cmd, &angle_low, NACK);i2c_master_stop(cmd);i2c_master_cmd_begin(I2C_NUM_0, cmd, 1000 / portTICK_PERIOD_MS);i2c_cmd_link_delete(cmd);result=(uint16_t)(angle_high<<8|angle_low); //一共就11位 注意angle=((int) result & 0b0000111111111111)*360.0/4096.0;//angle=result*360.0/4096.0;ESP_LOGI(AS_TAG,"%.2f",angle);
}

实验效果


下一阶段继续

基于ESP32 IDF开发FOC(1)-AS5600角度读取相关推荐

  1. SimpleFOC(三)—— AS5600角度读取

    目录 一.硬件介绍 1.磁编码器说明 2.硬件连接 二.程序演示 1.模拟电压获取角度 2.I2C通信获取角度 三.程序拓展 SimpleFOC的教程比较多,做了一个总的链接,欢迎点击阅读:Simpl ...

  2. ESP32启明云端又有新玩法|基于ESP32+热像仪传感的物联网非接触智能测温终端为高考护航了

    今天是高考第一天,想想N年前的自己,高考前抱着破罐子破摔的心态,书丢一边,好吃好喝迎高考!所以结局惨淡无比! 不提伤心事了,今天祝所有的高考考生都能取得自己满意的成绩! 今天提到的ESP32的新玩法跟 ...

  3. ESP32 IDF LVGL 1.47寸圆角屏幕测试

    前言 基于ESP32 IDF框架移植的LVGL,IDF版本为4.3.1,LVGL版本为8.1.1.屏幕为中景园的1.47寸172x320分辨率的圆角IPS,驱动芯片为st7789v3. B站视频效果: ...

  4. 用启明云端基于ESP32模块的开发板来快速了解天猫精灵

    为什么要了解天猫精灵呢? 在物联网时代,单纯的"互联"已经无法满足需求,需要让万物"智联"才能发挥它的应用价值.AI语音的简单.易用特性将成为万物"智 ...

  5. ESP32 ESP-IDF开发环境搭建,Windows下基于ESP-IDF | Cmake | VScode插件的 ESP32 开发环境搭建

      之前的一篇博客 Windows上基于ESP-IDF搭建ESP32开发环境 发布后,深受好评.几个月过去了,乐鑫的esp-idf-tools安装工具发生了较大的变化,VsCode插件的功能也愈加完善 ...

  6. esp32系列(11):ESP32 IDF平台 mpu6050 DMP 驱动移植及测试上位机开发

    目录 1 DMP 官方库介绍 1.1 DMP与MPL(Motion Processing Libraries)功能 1.2 运行MPL的硬件要求 1.3 Motion Driver 6.12 的架构 ...

  7. ESP32C3基于Arduino框架下的 ESP32 RainMaker开发示例教程

    ESP32C3基于Arduino框架下的 ESP32 RainMaker开发示例教程 ESP RainMaker ESP RainMaker 是乐鑫推出的一个端到端平台.基于该平台,用户无需管理基础设 ...

  8. 使用乐鑫官方资源搭建基于Arduino的ESP32的开发环境

    目录 一.配置IDE管理器 二.自动安装板支持包 三.手动安装板支持包 四.网盘的ESP32全系列基本库的板支持包 使用乐鑫官方库搭建Arduino开发环境. 乐鑫官方Github:GitHub - ...

  9. ESP32开发之旅——基于ESP32的室内空气质量检测系统

    ESP32开发之旅--基于ESP32的室内空气质量检测系统 前言 成果展示 核心代码 MQTT部分 获取传感器数据部分 连接WiFi部分 结尾 前言 本文主要是我课设项目的一个备忘,部分资料来源于网上 ...

最新文章

  1. iOS 微信SDK1.8.6后需要UniversalLink解决方案及采坑记录
  2. 解耦 多态性 java_java多态
  3. linux shell 缺少 ps 命令
  4. 编译动态库时遇到relocation R_X86_64_32 against a local symbol的错误
  5. python执行系统命令的方法
  6. java perm 查看_高级 Java 必须掌握:JVM 分析工具和查看命令,超详细
  7. 操作系统内存分配算法_操作系统基础45-伙伴系统和slab内存分配
  8. 论文浅尝 | 基于事理图谱的脚本事件预测
  9. php添加用户信息进入数据库,dedecms用户将信息插入数据库
  10. 玩转 SpringBoot 2 之整合 JWT 上篇
  11. Linux C编程Makefile编写初步-转
  12. OpenCV环境搭建(Windows+Visual studio)及Hello World
  13. tensorflow不能安装问题之(wrapt)
  14. jmeter安装配置教程
  15. oracle数据库架构视频教程,Oracle数据库体系架构_oracle架构_oracle学习视频_oracle数据库_课课家...
  16. hawk物联网组态工具_有哪些开源html5的组态软件
  17. 手机图形计算器matlab,Mathlab图形计算器下载
  18. Arora is a lightweight cross-platform web browser.
  19. 什么是嵌入式开发?嵌入式是什么?初学者必看。
  20. 盘点愚人节各大网站彩蛋,谁最爱恶搞?

热门文章

  1. Transformer课程 业务对话机器人Rasa 3.x Tuning Your NLU Model(二)
  2. 视频号7天销售额超百万
  3. Note: Linux安装CUDA Toolkit HOOMD BLUE
  4. JavaScript编程(小练习处理,显示时间,与倒计时)
  5. 读写tfrecord文件
  6. AssetBundle的原理及最佳实践
  7. 充电该知道的部分知识
  8. 女人十怕!!!男人十怕
  9. Elasticsearch查询计数
  10. DateTime.Now的详细用法