你好,
我们正在尝试与基于SPI的BMI055加速计通信。
下面是我们的设置:
o P0_0 SPI时钟
o P0_1 LF_Enable (CS)
o P0_5味噌
o P0_6莫西人
下面是代码:
GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_0, OUTPUT, PID_SPI_CLK, false);/ /时钟
GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_1, OUTPUT, PID_SPI_EN, true);/ / CS
GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_5, INPUT, PID_SPI_DI, false);/ /味噌
GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_6, OUTPUT, PID_SPI_DO, false);/ /莫西人
/ /……
注意:这个指向CS线的引脚和端口
SPI_MODE_8BIT,
SPI_ROLE_MASTER,
SPI_CLK_IDLE_POL_LOW,
SPI_PHA_MODE_1,
SPI_MINT_DISABLE,
SPI_XTAL_DIV_8);
和一个简单的读寄存器代码:
spi_cs_high ();
spi_set_bitmode (SPI_MODE_8BIT);
spi_access ((uint8_t) (READ_MODE |地址));/ / x00h地址是0
regval = (uint8_t) spi_access (0 x0000);//注意:regval总是0xff
spi_cs_low ();
现在,读尝试总是返回0xff(地址0x50001202的值),
我们确信这是错误的,因为我们试图读取一个默认值,应该是0xFA。
谢谢你!
Baswaraj。
嗨Baswaraj,
您是否能够捕获总线活动,以检查传感器是否响应命令。你还初始化了SPI吗?另外,请尝试调用spi_cs_low()来启动事务,然后调用spi_cs_high来结束事务。
由于MT_dialog