您好!
我需要在 TM4C1294NCPDT 控制器中对 SPI 配置进行直接寄存器配置。
任何示例代码都是建议使用的。
谢谢大家、
维贾伊
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.
您好!
我需要在 TM4C1294NCPDT 控制器中对 SPI 配置进行直接寄存器配置。
任何示例代码都是建议使用的。
谢谢大家、
维贾伊
您好!
我们提供了 TivaWare SDK 及外设驱动程序、以使用户从硬件中抽象出来。 我们没有任何使用 DRM (直接寄存器操作)样式的编码的示例。 但是、您可以轻松查看任何一个 SPI API 源代码以了解如何使用 SPI 寄存器进行操作。 您还可以参阅数据表。 器件数据表包含完整的寄存器说明。 只需要写入和读取指定地址的寄存器。 下面是将数据写入 SPI 数据寄存器的代码片段。 请参考 C:\ti\TivaWare_C_Series-2.2.0.295\driverlib\ssi.c 文件。
void
SSIDataPut(uint32_t ui32Base, uint32_t ui32Data)
{
//
// Check the arguments.
//
ASSERT(_SSIBaseValid(ui32Base));
ASSERT((ui32Data & (0xfffffffe << (HWREG(ui32Base + SSI_O_CR0) &
SSI_CR0_DSS_M))) == 0);
//
// Wait until there is space.
//
while(!(HWREG(ui32Base + SSI_O_SR) & SSI_SR_TNF))
{
}
//
// Write the data to the SSI.
//
HWREG(ui32Base + SSI_O_DR) = ui32Data;
}为什么不在 C:\ti\TivaWare_C_Series-2.2.0.295\examples\peripherals\ssi\spi_master.c 中运行简单示例、并逐个步骤查看源代码、它为您提供了 API 如何使用 DRM 来设置所有寄存器的分步式示例。
举个简单的例子、说明如何写入寄存器。 假设您要向 SSI0模块中的 SSIDR 寄存器写入一个随机值0x1234。
HWREG (SSI0_BASE + SSI_O_DR)= 0x1234;