使用STM32L452通过C-Driver-MEMS驱动STTS751
[复制链接]
IKS01A3提供了全套的传感器驱动和例程,也许是为了兼容性吧代码设计的非常复杂
不管是新手还是老手想要把代码搞明白都要花上一些时间
除了en.x-cube-mems1 ST还为每个传感器提供了C-Driver-MEMS驱动和例程
如果是做一些简单的测试使用C-Driver-MEMS会非常方便
这次测试STTS751传感器使用的是NUCLEO-L452RE
目的是为了将STTS751采集到的温度通过串口发送给电脑
对于STM32L452需要用到I2C接口和UART接口,I2C与STTS751通信,UART与PC通信
针对STM32单片机,ST提供了一款叫STM32CubeMX的软件,可以图形化配置,然后生成代码
用过的小伙伴都知道,这款软件非常好用
我之前做一些东西时使用STM32CubeMX开发节省了很多的时间
甚至用过STM32CubeMX开发STM32以后都懒的再用其它单片机,除了PSoC
先打开NUCLEO-L452RE的原理图确定I2C和UART对应的引脚
UART2通过通过PA2,PA3连接到ST-LINK的虚拟串口
I2C1通过PB8,PB9连接到arduino的I2C接口
打开STM32CubeMX软件,选择NUCLEO-L452R开发板,再使能I2C1和UART2模块
其它全部默认设置不需要修改
将这两个模块对应的引脚修改成原理图内对应的引脚,给工程起个名字就可以生成相应的代码了
代码生成后打开工程,将STTS751的C-Driver-MEMS驱动引出到工程
打开read_data_simple.c文件,example_main_stts751函数里的STTS751_ID_0xxxx改成STTS751_ID_1xxxx
再将platform_write和platform_read里的STTS751_0xxxx_ADD_7K5改成STTS751_1xxxx_ADD_7K5
修改tx_com函数将原来的CDC_Transmit_FS改成使用uart2通信
烧好代码,支行串口助手就可以看到输出的温度数据
|