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

一、RT Thread Studio 配置IIC

1、在RT Thread Seting 中开启IIC功能 并保存

一定要保存才能更新工程

2、在board.h中,开启IIC的宏

注意选择对应的管脚

#define BSP_USING_I2C1
#ifdef BSP_USING_I2C1
#define BSP_I2C1_SCL_PIN    GET_PIN(B, 8)
#define BSP_I2C1_SDA_PIN    GET_PIN(B, 7)
#endif#define BSP_USING_I2C2
#ifdef BSP_USING_I2C2
#define BSP_I2C2_SCL_PIN    GET_PIN(D, 1)
#define BSP_I2C2_SDA_PIN    GET_PIN(D, 0)
#endif#define BSP_USING_I2C3
#ifdef BSP_USING_I2C3
#define BSP_I2C3_SCL_PIN    GET_PIN(D, 2)
#define BSP_I2C3_SDA_PIN    GET_PIN(C, 12)
#endif#define BSP_USING_I2C4
#ifdef BSP_USING_I2C4
#define BSP_I2C4_SCL_PIN    GET_PIN(D, 4)
#define BSP_I2C4_SDA_PIN    GET_PIN(D, 3)
#endif

二、读取AS5600demo


#include <rtdevice.h>#define HALL_I2C_PITCH_NAME     "i2c2"
#define HALL_I2C_ROLL_NAME      "i2c3"
#define HALL_I2C_YAW_NAME       "i2c4"#define Slave_Addr 0x36
#define Write_Bit 0
#define Read_Bit 1
#define Angle_Hight_Register_Addr 0x0C
#define Angle_Low_Register_Addr 0x0Dstatic struct rt_i2c_bus_device *i2c_bus = RT_NULL;     /* I2C总线设备句柄 *//* 写传感器寄存器 */
static rt_err_t write_reg(struct rt_i2c_bus_device *bus)
{struct rt_i2c_msg msgs;rt_uint8_t buf = Angle_Hight_Register_Addr;msgs.addr = Slave_Addr;msgs.flags = RT_I2C_WR;msgs.buf = &buf;msgs.len = 1;/* 调用I2C设备接口传输数据 */if (rt_i2c_transfer(bus, &msgs, 1) == 1){return RT_EOK;}else{return -RT_ERROR;}
}/* 读传感器寄存器数据 */
static rt_err_t read_regs(struct rt_i2c_bus_device *bus, rt_uint8_t len, rt_uint8_t *buf)
{struct rt_i2c_msg msgs;msgs.addr = Slave_Addr;msgs.flags = RT_I2C_RD;msgs.buf = buf;msgs.len = len;/* 调用I2C设备接口传输数据 */if (rt_i2c_transfer(bus, &msgs, 1) == 1){return RT_EOK;}else{return -RT_ERROR;}
}static void read_angle()
{rt_uint8_t temp[2];write_reg(i2c_bus);      /* 发送命令 */read_regs(i2c_bus, 2, temp); /* 获取传感器数据 */temp[0] = temp[0] & 0xF;rt_uint16_t angle = temp[0]*256 + temp[1];rt_kprintf("angle:%d",angle);
}static void hall_init(const char *name)
{/* 查找I2C总线设备,获取I2C总线设备句柄 */i2c_bus = (struct rt_i2c_bus_device *)rt_device_find(name);if (i2c_bus == RT_NULL){rt_kprintf("can't find %s device!\n", name);}else{}
}static void hall_sample(int argc, char *argv[])
{hall_init(HALL_I2C_PITCH_NAME);read_angle();
}
/* 导出到 msh 命令列表中 */
MSH_CMD_EXPORT(hall_sample, i2c hall sample);

最后打开串口控制台,输入指令,就可以获取角度了

msh >hall_sample
angle:1158
msh >hall_sample
angle:850

RT Thread Studio 配置IIC并读取AS5600角度相关推荐

  1. rt thread studio使用QBOOT和片外flash实现OTA升级

    我们这里要使用单片机外部flash作为OTA的下载分区,外部flash硬件连接关系 PB3-->SPI3_CLK PB4-->SPI3_MISO PB5-->SPI3_MOSI PE ...

  2. RT Thread利用STM32CUBEMX和RT Thread studio来创建模板工程

    (1)RT Thread利用STM32CUBEMX来创建模板工程 1.参考文档: 基于 CubeMX 移植 RT-Thread Nano:RT-Thread 文档中心 注意:串口2必须使能异步模式(启 ...

  3. xpt 2046的触摸屏 rt thread设备驱动框架

    1 基于rtt 开发触摸屏驱动 准备使用rtt 框架 , 驱动xpt 2046的触摸屏, 翻阅大量资料发现, 大部分文章强调的是时序图, 而且很多代码要么直接操作寄存器, 要么是io 口模拟, 只能用 ...

  4. 关于RT thread系统节拍时钟的配置

    关于RT thread系统节拍时钟的配置                  -----本文基于rt-thread-3.1.3版本编写 首先,使用RTthread OS时,要配置(或者明白)它的系统节拍 ...

  5. IIC读取AS5600磁编码器并计算相对角度与圈数代码移植

    芯片F103CBT6,使用cubeide+hal库,驱动部分源码移植于: (22条消息) STM32使用模拟I2C读取AS5600(深入讲解:带波形图)_yizeni的博客-CSDN博客_as5600 ...

  6. stm32f407单片机rt thread 片外spi flash OTA升级配置示例

    参考地址https://www.rt-thread.org/document/site/application-note/system/rtboot/an0028-rtboot/ 第一步,生成Boot ...

  7. stm32 hal库 AS5600磁编码器IIC通信读取角度

    stm32 hal库 AS5600磁编码器IIC通信读取角度 下载

  8. 使用RT Thread设备框架封装一个I2C设备——DS3231

    使用RT Thread设备框架封装一个I2C设备--DS3231 前言 ENV配置 I2C测试 将ds3231封装成一个字符设备 结语 前言 学习rt thread的I2C的时候,恰巧手上的板子留了d ...

  9. RT Thread之 Uart2 操作

    官网连接:https://docs.rt-thread.org/#/rt-thread-version/rt-thread-standard/programming-manual/device/uar ...

最新文章

  1. java队列怎么实现线程_Java中利用线程和队列实现入库操作
  2. 利用CMake编译内核模块
  3. JDK动态代理和CGLIB代理的区别
  4. python中单引号,双引号,多引号区别
  5. linux26内核,Linux26内核对象机制研究.pdf
  6. android安全补丁卸载,这种安全更新能不卸载就不卸载
  7. 什么是E-MapReduce
  8. 恕我直言,你可能误解了微服务
  9. 鸟哥Linux服务器-8
  10. laoshijibuzhu
  11. 插入保存?展现show的顺序
  12. python 爬虫代码实例
  13. latex---插入三线表伪代码流程图
  14. 视频和视频帧:视频和帧基础知识整理
  15. 未来测试软件推荐,未来函数检测工具优化版(支持所有股软未来检测)
  16. 关于android的Haxm报错调试问题
  17. MLB的选秀会有哪些规定和流程·棒球6号位
  18. python是否被高估了?
  19. Java研发技术学习路线
  20. linux中哪个系统适合做服务器

热门文章

  1. Mit6.006-problemSession04
  2. python接口测试(requests),返回数据中文乱码
  3. ios:设置视图背景图片的方法
  4. 易语言中findwindowEx的用法
  5. 俞敏洪:我让女儿主动学习的秘密,做
  6. C#的一些重要知识总结
  7. android 文件分类管理,分类文件管理app下载-分类文件管理安卓最新版下载-丫丫安卓网...
  8. k线图解大全_何谓阴线阳线
  9. Ubuntu 20.04 下安装 OpenCV 3.4.11 并测试使用
  10. 实验七|Python 企业现金流分析