I2C我用的例程,器件地址为0x36,角度信息在寄存器0x0c,0x0d
直接上代码

# include "AS5600.H"
# include "delay.h"
# include "sys.h"void AS5600_Init(void)
{IIC_Init();
}u16 AS5600_Read_Len(u8 addr,u8 reg,u8 len,u8 *buf)
{//SDA_IN();IIC_Start();IIC_Send_Byte((addr << 1) | Write_Bit);if (IIC_Wait_Ack()){IIC_Stop();return 1;}IIC_Send_Byte(reg);IIC_Wait_Ack();IIC_Start();IIC_Send_Byte((addr<<1) | Read_Bit);//发送器件地址+读命令IIC_Wait_Ack();      //等待应答 while(len){if(len==1)*buf=IIC_Read_Byte(0);//读数据,发送nACK else *buf=IIC_Read_Byte(1);      //读数据,发送ACK  len--;buf++; }    IIC_Stop();    //产生一个停止条件 return 0;    }float Get_Angle(void)
{u8 buf[2] = {0};u8 i = 0;float temp = 0;float temp1 = 0.0;for (i = 0; i < 20; i++){AS5600_Read_Len(Slave_Addr,Angle_Hight_Register_Addr,2,buf);temp1 +=buf[0]*256+buf[1];delay_ms(5);//temp = (((u16)buf[0] & (0x0f00)) << 8) | buf[1];}//软件滤波,防止数据不稳定temp = temp1/20;return temp/4096*360;}

AS5600.H

# ifndef __AS5600_H
# define __AS5600_H
# include "I2C.H"# define Slave_Addr 0x36
# define Write_Bit 0
# define Read_Bit 1
# define Angle_Hight_Register_Addr 0x0C
# define Angle_Low_Register_Addr 0x0Dvoid AS5600_Init(void);
u16 AS5600_Read_Len(u8 addr,u8 reg,u8 len,u8 *buf);
float Get_Angle(void);# endif

之后直接用串口打印Get_Angle()函数即可

STM32F103软件I2C读取角度传感器AS5600角度信息相关推荐

  1. SPI驱动XPT2046芯片读取其内部ADC信息笔记

    前言 这次来复习一下SPI以及ADC的有关知识,之前介绍到的磁编码器也是基于SPI协议通信才能读取其内部角度信息,ADC就更不用说了,在电压检测,电机驱动的方面都会涉及到采样量化编码的知识,趁此机会好 ...

  2. 基于ESP32 IDF开发FOC(1)-AS5600角度读取

    AS5600角度读取 1.相关定义 #define As5600_Addr 0x36 #define RawAngle_Addr 0x0C#define I2C_WRITE_MODE 0 #defin ...

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

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

  4. RT Thread Studio 配置IIC并读取AS5600角度

    RT Thread Studio 配置IIC并读取AS5600角度 一.RT Thread Studio 配置IIC 1.在RT Thread Seting 中开启IIC功能 并保存 一定要保存才能更 ...

  5. stm32软件模拟I2C读取ADXL345三轴加速度值

    最近做一个实验室里的小项目,需要用stm32来读取ADXL345三轴加速度的值,本来硬件I2C都调好了,可是后来和实验室合作的一个公司给的板子却没把硬件I2C的端口给引出来,太伤心了,我又得重新调一下 ...

  6. STM32单片机硬件I2C读取AHT10温湿度传感器数据

    STM32使用硬件IIC读取AHT10温湿度传感器的数据并显示在0.96寸OLED屏上. 我用的单片机是STM32F103C8T6,程序用的是ST标准库写的. STM32使用硬件I2C读取SHTC3温 ...

  7. STM-32:I2C通信协议—软件I2C读写MPU6050

    目录 一.I2C通信 二.硬件电路 三.I2C时序基本单元 3.1起始和终止 3.1.1起始条件 3.1.2终止条件 3.2发送一个字节 3.3接收一个字节 3.4发送应答 3.5接收应答 四.I2C ...

  8. 【UGV】Arduino Mega2560 获取小车角度信息,传感器JY60

    详细版原理图请参考:[UGV]小车一些图片 麦轮版小车 示例程序如下: 使用的是 Mega2560 的 3 号串口读取了 JY60 角度传感器传回来的的角度信息,然后通过 1 号串口在电脑上进行了显示 ...

  9. 【51单片机快速入门指南】4.3: I2C读取MPU6050陀螺仪的原始数据

    目录 硬知识 特性参数 MPU6050 简介 模块重要寄存器简介 电源管理寄存器 1 陀螺仪配置寄存器 加速度传感器配置寄存器 FIFO 使能寄存器 陀螺仪采样率分频寄存器 配置寄存器 电源管理寄存器 ...

最新文章

  1. atomic与nonatomic,assign,copy与retain的定义和区别
  2. h3c 3600 交换机配置Telnet登录
  3. 高级会计师资格考试成绩合格证在全国范围内几年有效
  4. sprintf函数_三分钟学 Go 语言——函数深度解析(下) 可变参数
  5. 数据结构和数据类型之间的关系
  6. ASP.NET技巧:字符自动截取问题
  7. 关于灵魂安放,年轻人如何选择适合自己的城市呢?学长有话说
  8. redis笔记5 stream消息队列
  9. 大兴服务器硬盘回收行情价格,回收服务器 硬盘 内
  10. C++小游戏——打方块
  11. Flutter 旋转动画
  12. java 获取当前月的第一天和最后一天
  13. python开发单片机仿真软件_开源电子电路仿真模拟软件,加油国产芯片
  14. 【C语言】飞翔的小鸟游戏
  15. CC00070.bigdatajava——|Java循环结构.V09|——|Java.v09|双重for循环.v02|打印各种星星图案|
  16. 【BZOJ1014】【JSOI2008】火星人prefix Splay处理区间,hash+dichotomy(二分)check出解...
  17. cgb2109-day02
  18. 用python写bp神经网络作价格预测_bp神经网络预测python
  19. Codeforces Round #644 (Div. 3) F.Spy-string
  20. 计算机能力挑战2021,2021WER能力挑战赛——“人工智能”竞赛规则.docx

热门文章

  1. Ubuntu14.04 安装使用rabbitSVN
  2. SSIS中的容器和数据流—数据转换(Transformations)
  3. 斐波那契数列 递归算法
  4. java 整数除法整数_Java:整数除法
  5. oracle数据库报错12505,Oracle SQL Developer连接报错(ORA-12505)的解决方案(两种)
  6. 领导问结婚情况什么意思_领导者如何在没有共识的情况下前进
  7. 重启linux服务器连不上,linux服务器重启后ssh连不上了
  8. 未来趋势(老年用品店)
  9. UVA 1659 Help Little Laura 帮助小劳拉 (最小费用流,最小循环流)
  10. https证书存在哪里?部署https证书的意义