STM32F4与ADXL362通信失败

2019-07-20 04:12发布

        我用原子哥的STM32F4探索者开发板,板子的SPI例程运行正常。我在这个例程的基础上,修改为与ADXL362通信的程序。该片子也是用SPI通信,要求CPHA=CPOL=0,SCLK为1M~5MHz,先发MSB。

        初始化时读取下ADXL362的DEVID_AD(正确值为0XAD),确认无误后再进一步通信。遇到问题如下:
        1、SPI各管脚的GPIO_Speed为默认100MHz时,读取到的数据一直为0XFF,将SCLK的GPIO_Speed修改为2MHz时,读出的数据为0X91,修改其他管脚的GPIO_Speed不起作用,还一直是0X91。虽然数据也不对,但数据却不一样了。请教下GPIO_Speed在这里起的作用是啥?
        2、在上述配置下,读出的数据还是不对啊,正确应该是0XAD,我读到的却是0X91。我把程序流程和示波器的图发在下面,请大神帮忙分析下:
        (1)按照数据手册,STM32向ADXL362依次发送读命令0X0B、DEVID_AD寄存器地址0X00,然后发送一个假的数据0XAA,同时读取ADXL362回复的数据。SCLK和MOSI波形如下所示:
          SCLK和MOSI SCLK和MOSI
        (2)SCLK和ADXL362返回的数据MISO如下图所示(CS端常高,在SPI通信前拉低,通信结束后拉高,已确认无误):
          SCLK和MISO SCLK和MISO
        就是这张图有问题,应该是0XAD的,它却是0X91。请教大神~~~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-07-20 09:19
 精彩回答 2  元偷偷看……
hnxyxiaomeng
2楼-- · 2019-07-20 14:40
 精彩回答 2  元偷偷看……
hnxyxiaomeng
3楼-- · 2019-07-20 20:23
在CC2530上解决了,
13755885133
4楼-- · 2019-07-21 01:38
然后发送一个假的数据0XAA       为什么要发送假数据,我看官方的代码好像是在发送寄存器地址后发送0x00作为假数据吧。
13755885133
5楼-- · 2019-07-21 06:58
 精彩回答 2  元偷偷看……

一周热门 更多>