咳咳,前边点灯的命令似乎和pin脚的功能无关...,正确的命令应该是从msh退出后再finsh里用pinMode/pinWrite/pinRead命令操控GPIO脚,如下图
言归正传,I2C!I2C这部分MM家SDK的参考代码甚合我意,表扬下,虽然只有主机模式,不过也够用了。移植到rt-thread这边也相当畅快
第一步:把rtt家component文件夹里关于I2C的驱动添加到工程里
第二步:编写drv\_i2c.c和.h,参考其他xx32的bsp即可,当然也要去看MM家I2C的参考例程,
发送函数我用的polling模式的,能用就行,见下图
初始化I2C的函数见下图,这里咱们动了两个I2C
第三步:在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文件夹下 添加到工程
/-------------------------------/
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的命令
编译下载看结果
msh里用mpu6xxx\_test获取板子三轴传感器的状态数据
/---------- PAJ7620手势传感器 ----------/
参考MPU6050传感器的流程
这里PAJ7620传感器的驱动从这里下载
https://github.com/orange2348/paj7620
或
https://gitee.com/RT-Thread-Mirror/paj7620
添加PAJ7620的驱动文件到工程,记得添加include路径
添加PAJ7620的应用程序到工程
编译下载看结果
这边PAJ7620的代码和MPU6050不太相同,
需要probe到i2c2上,然后用paj7620 open执行paj7620手势识别的功能,具体看下图好了
嗯,这样I2C基本打完收工~