主题中讨论的其他器件:MOTORWARE
您好!
我尝试在与 IMU 的连接中使用 SPIA、但在使用 SPI-Write 函数发送消息时没有 CS 信号。
我的 SPI 配置在 hal.c 中如下(我使用的是 motorware):
对于引脚配置:
// SPI SDI 至 IMU
GPIO_setMode (obj->gpioHandle、GPIO_Number_16、GPIO_16_Mode_SPISIMOA);
// SPI SDO 到 IMU
GPIO_setMode (obj->gpioHandle、GPIO_Number_17、GPIO_17_Mode_SPISOMIA);
// SPI SCLK 到 IMU
GPIO_setMode (obj->gpioHandle、GPIO_Number_56、GPIO_56_Mode_SPICLKA);
//将 SPI /SCS 更改为 IMU
GPIO_setMode (obj->gpioHandle、GPIO_Number_19、GPIO_19_Mode_SPISTEA_not);
对于 SPI 配置:
void HAL_setupSpiA (HAL_Handle handle)
{// Louis S 于2021年5月25日完成更新、以配置 SPI A 进行 IMU 控制
// IMU 是 LSM6DSM
HAL_Obj * obj =(HAL_Obj *)句柄;
//开始重置 SPI
spi_reset (obj->spiAHandle);
SPI_setMode (obj->spiAmHandle、SPI_Mode_Master);
SPI_setCharLength (obj->spiAmHandle、SPI_CharLength _16_Bits);
SPI_setClkPhase (obj->spiAHandle、SPI_ClkPhase_Normal);
SPI_setClkPolarity (obj->spiAHandle、SPI_ClkPolarity_OutputFallingEdge_InputRisingEdge);
spi_setBaudRate (obj->spiAHandle、spi_bauddrate_1_MBaud);
SPI_setTriWire (obj->spiAmHandle、SPI_TriWire_normalFourWire);
spi_enableTx (obj->spiAHandle);
SPI_enableTxFifoEnh (obj->spiAHandle);
spi_enableTxFifo (obj->spiAHandle);
spi_setTxDelay (obj->spiAHandle、0);
SPI_clearTxFifoInt(obj->spiAHandle);
spi_enableChannels (obj->spiAHandle);
SPI_enableRxFifo (obj->spiAHandle);
SPI_setSuspend (obj->spiAHandle、SPI_TxSuspend_free);
spi_enable (obj->spiAHandle);
返回;
}// HAL_setupSpiA()函数结束
我在主循环中使用 SPI 写入函数、仅在使用以下代码连接到 IMU 之前测试信号:
spi_write (handle->spiAHandle、data_TO_SEND);
//发送虚拟消息
spi_write (handle->spiAHandle、0);
您能帮我获取 CS 信号吗?
此致
路易