STM32L051C与LIS3DH通过SPI通信的测试驱动
测试环境:STM32CubeMX 通信:SPI
这是第一次写这种文章,主要是怕自己忘记是如何调试的,调试这个LIS3DH用了我2天的时间,也是比较久了,可能技术能力还是有限吧。。。
LIS3DH有I2C接口和SPI接口两种,本文用的是SPI接口,那就需要注意SPI通信有4中模式,需要根据LIS3DH的文档来确定它具体是那种模式,然后在STM32CubeMX中进行配置,这个很关键,我就是没有弄懂这个咋回事浪费了很多时间,总体来说,只要配置正确,功能就可以实现。直接上图。。。
上图是配置的引脚PA4~PA7,其中PA4设置成普通输出口,这个比较重要,因为在写LIS3DH的SPI读写程序时,需先拉低PA4(CS),通信完成后再拉高PA4(CS)。
上图是具体配置,注意CPOL和CPHA,因为这两个配置浪费了我太多时间,其实对SPI时序图了解的同学,应该看到时序图就知道如何配置了。简单讲一下STM32CubeMX中CPOL和CPHA的功能。
CPOL:是指在时钟线空闲的时候的高低,如下图。