【NUCLEO-L4R5ZI移植LSM6DSL驱动】一、添加驱动库
[复制链接]
完成器件测试就可以往项目里添加驱动了,en.x-cube-mems-xt1里包含了LSM6DSL驱动和演示代码可以直接从那里移植过来 先按照en.x-cube-mems-xt1的结构在新生成的项目里新建文件夹Drivers\BSP\Components,将lsm6dsl文件夹和里边的全部内容复制过来 再将Drivers\BSP\Components\Common文件夹和里边的accelerometer.h,component.h,gyroscope.h,sensor.h四个文件复制过来 打开IDE,将lsm6dsl内的.c文件添加到Drivers\BSP\Components下 在项目里添加Common和lsm6dsl的引用 接下来是移植加速度的驱动到项目里,在en.x-cube-mems-xt1例程里可以看到Drivers\BSP下有2个文件夹 X_NUCLEO_IKS01A1和X_NUCLEO_IKS01A2,对应这2个开发板,打开X_NUCLEO_IKS01A2文件夹会看到很多和评估板相关的文件 x_nucleo_iks01a2.c x_nucleo_iks01a2.h x_nucleo_iks01a2_accelero.c x_nucleo_iks01a2_accelero.h x_nucleo_iks01a2_gyro.c x_nucleo_iks01a2_gyro.h x_nucleo_iks01a2.c和x_nucleo_iks01a2.h包含了I2C接口定义和INT中断引脚的相关函数 x_nucleo_iks01a2_accelero.c、x_nucleo_iks01a2_accelero.h、x_nucleo_iks01a2_gyro.c、x_nucleo_iks01a2_gyro.h包含了加速度、陀螺仪的初始化和配置函数 除了LSM6DSL还包含其它支持的器件,里边的函数大多间接调用了LSM6DSL_ACC_GYRO_driver.c和LSM6DSL_ACC_GYRO_driver_HL.c文件内的函数 我只是想测试LSM6DSL,为什么不能简单些呢?直接省掉这些文件,I2C接口定义和LSM6DSL初始化直接写在main.c里 把这几个文件里的关键内容提出来写到main.c里以后 测试一下,读取who am i正常
en.x-cube-mems-xt1的代码层层嵌套读起来比较吃力 有兴趣可以了解一下官方提供的Drivers for MEMS 看起来挺简洁 C-Driver-MEMS里边包含了很多ST MEMS的器件驱动 https://bbs.eeworld.com.cn/thread-648834-1-1.html
a3g4250d_STdC ais328dq_STdC ais3624dq_STdC h3lis331dl_STdC hts221_STdC iis2mdc_STdC iis328dq_STdC iis3dhhc_STdC ism303dac_STdC ism330dlc_STdC lis2dh12_STdC lis2ds12_STdC lis2dw12_STdC lis2mdl_STdC lis331dlh_STdC lis3de_STdC lis3dhh_STdC lis3mdl_STdC lps22hb_STdC lps22hh_STdC lps25hb_STdC lps33hw_STdC lsm303agr_STdC lsm303ah_STdC lsm6dsl_STdC lsm6dsm_STdC
|