“线程”中讨论的其他部件:TMDSCNCD28388D, 资产, sysconfig
大家好!
我有一些问题。
我遇到了类似下面一行的短语错误。
ASSERT(SysCtl_getLowSpeedClock(DEVICE_OSCSRC_FREQ) == DEVICE_LSPCLK_FREQ);
这种说法的重要性是什么? 我应该关心它吗?
类似地,我在 SPI 初始化期间也遇到了一些断言错误,如下所示。
ASSERT(SPI_isBaseValid(base)); ASSERT((HWREGH(base + SPI_O_CCR) & SPI_CCR_SPISWRESET) == 0U);
这是我的 SPI 初始化代码及其调用方式。
uint32_t SPI_BASEs[4] = {SPIA_BASE, SPIB_BASE, SPIC_BASE, SPID_BASE};
for(erhan=0;erhan<4;erhan++)
initSPIFIFO(SPI_BASEs[erhan]);
void initSPIFIFO(uint32_t SPI_BASE)
{
//
// Must put SPI into reset before configuring it
//
SPI_disableModule(SPI_BASE);
//
// FIFO configuration
//
SPI_enableFIFO(SPI_BASE);
SPI_clearInterruptStatus(SPI_BASE, SPI_INT_RXFF | SPI_INT_TXFF);
if(SPI_BASE == SPIA_BASE)
{
SPI_setFIFOInterruptLevel(SPI_BASE, (SPI_TxFIFOLevel)1,
(SPI_RxFIFOLevel)SPI_FIFO_RXDEFAULT);
}
else if(SPI_BASE == SPID_BASE)
{
SPI_setFIFOInterruptLevel(SPI_BASE, (SPI_TxFIFOLevel)SPI_FIFO_TXEMPTY,
(SPI_RxFIFOLevel)1);
}
else
{
SPI_setFIFOInterruptLevel(SPI_BASE, (SPI_TxFIFOLevel)SPI_FIFO_TXEMPTY,
(SPI_RxFIFOLevel)SPI_FIFO_RXDEFAULT);
}
SPI_setTxFifoTransmitDelay(SPI_BASE, 1);
//
// SPI configuration. Use a 500kHz SPICLK and 16-bit word size.
//
SPI_setConfig(SPI_BASE, DEVICE_LSPCLK_FREQ, SPI_PROT_POL0PHA0,
SPI_MODE_MASTER, 1000000, 16);
SPI_enableLoopback(SPI_BASE);
SPI_enableModule(SPI_BASE);
}
有人能告诉我,为什么即使 SPI 基址也会出现断言错误?
此外,我的调试器在调试过程中显示了错误的代码,如下图所示。 有没有解决办法? 我使用 TMDSCNCD28388D。
请提前感谢。
谢谢,