This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/DRV8301-69M-KIT:SPI 连接 drv8301-69m 和 Arduino

Guru**** 1996415 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/603591/ccs-drv8301-69m-kit-spi-connection-drv8301-69m-and-arduino

器件型号:DRV8301-69M-KIT

工具/软件:Code Composer Studio

您好!
我希望使用 SPI 控制 drv8301-69m 套件、以启动和停止电机并设置速度参考值。 我使用 Arduino 作为主站、Arduino 的引脚连接到电路板的 J8 (SOMI->SD-I、SIMO->SD-O、GND-GND、CLK->CLK、GPIO->GPIO (SS))。 我 目前没有更改 void HAL_setupSpiA (HAL_Handle handle)。
问题是我没有得到任何价值。

在 proj_lab main 中、我添加 了 HAL_setupSpiA (halHandle);以初始化 SPIA。

//变量
uint_least16_t 值;

读取函数位于 for 循环-> value = SPI_read (spiAHandle);

hal.c:
void HAL_setupSpiA (HAL_Handle handle)

 HAL_Obj  * obj =(HAL_Obj *)句柄;

 spi_reset (obj->spiAHandle);
 SPI_setClkPolarity (obj->spiAHandle、SPI_ClkPolarity_OutputRisingEdge_InputFallingEdge);
 spi_disableLoopBack (obj->spiAHandle);
 SPI_setCharLength (obj->spiAmHandle、SPI_CharLength _16_Bits);

 SPI_setMode (obj->spiAHandle、SPI_Mode_Slave);
 SPI_setClkPhase (obj->spiAHandle、SPI_ClkPhase_Delayed);
 spi_enableTx (obj->spiAHandle);

 spi_enableChannels (obj->spiAHandle);
 SPI_enableTxFifoEnh (obj->spiAHandle);
 spi_enableTxFifo (obj->spiAHandle);
 spi_setTxDelay (obj->spiAHandle、0);
 SPI_clearTxFifoInt(obj->spiAHandle);
 SPI_enableRxFifo (obj->spiAHandle);


//从模式 SPI_setBaudRate (obj->spiAHandle、(SPI_bandrate_e)(0x000d)不需要;
 SPI_setSuspend (obj->spiAHandle、SPI_TxSuspend_free);
 spi_enable (obj->spiAHandle);

 返回;
} // HAL_setupSpiA()函数结束

这是寄存器的图片。





是否有任何设置 SPI 的指南或示例?


谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    它现在可以工作了。 这是错误的模式设置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Daniel、您好!

    感谢您将解决方案发布到您的问题。