Magicoe是攻城狮 · 2022年08月30日 · 上海市长宁区

【MM32F5270开发板试用】三、I2C的驱动,读读姿态和手势传感器

咳咳,前边点灯的命令似乎和pin脚的功能无关...,正确的命令应该是从msh退出后再finsh里用pinMode/pinWrite/pinRead命令操控GPIO脚,如下图
 title=

言归正传,I2C!I2C这部分MM家SDK的参考代码甚合我意,表扬下,虽然只有主机模式,不过也够用了。移植到rt-thread这边也相当畅快
第一步:把rtt家component文件夹里关于I2C的驱动添加到工程里
 title=
第二步:编写drv\_i2c.c和.h,参考其他xx32的bsp即可,当然也要去看MM家I2C的参考例程,
发送函数我用的polling模式的,能用就行,见下图
 title=

初始化I2C的函数见下图,这里咱们动了两个I2C
 title=

第三步:在rtconfig.h里启动I2C的功能,就是那些宏定义啦

#define RT_USING_I2C
#define RT_USING_I2C_BITOPS
#define BSP_USING_I2C
#define BSP_USING_I2C1
#define HW_I2C1_BAUDRATE_100kHZ
#define BSP_USING_I2C2
#define HW_I2C2_BAUDRATE_100kHZ

走完这三步就差不多了额,记个流水账
需要一些特定的sensor传感器功能,需要添加这些I2C传感器的驱动文件,
在添加传感器驱动前,先把rtt这边sensor\_cmd.c, sensor.c和.h在component文件夹下 添加到工程
 title=

/-------------------------------/
OK, 让我们先来第一个传感器,板子上的那个MPU6050。rtt作为大多数国产RTOS的模板,提供了丰富的外设驱动,是的,他们没有放过MPU6050,这里下载好,添加到工程
https://github.com/RT-Thread-packages/mpu-6xxx

https://gitee.com/RT-Thread-Mirror/mpu-6xxx
接下来咱们写个app\_mpu6050.c 给rtt添加个测试mpu6050的命令
 title=

编译下载看结果
msh里用mpu6xxx\_test获取板子三轴传感器的状态数据
 title=

/---------- PAJ7620手势传感器 ----------/
参考MPU6050传感器的流程
这里PAJ7620传感器的驱动从这里下载
https://github.com/orange2348/paj7620

https://gitee.com/RT-Thread-Mirror/paj7620
添加PAJ7620的驱动文件到工程,记得添加include路径
 title=
添加PAJ7620的应用程序到工程
 title=

编译下载看结果
这边PAJ7620的代码和MPU6050不太相同,
需要probe到i2c2上,然后用paj7620 open执行paj7620手势识别的功能,具体看下图好了
 title=

嗯,这样I2C基本打完收工~

推荐阅读
关注数
6151
内容数
276
灵动MM32 MCU相关技术知识,欢迎关注~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息