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.

TMS320C6748: 使用W5500实现UDP通信到电脑

Part Number: TMS320C6748


选用的是SPI0硬件,但是一直配置不成功,下面是相关函数,希望有人帮帮我

UINT32 TEST_spi_flash(void)
{
// UINT32 rtn;
// UINT32 i;

// 管脚复用配置
// RK6748_lpscTransition(PSC0, DOMAIN0, LPSC_SPI0, PSC_ENABLE);
PSCModuleControl(SOC_PSC_0_REGS, HW_PSC_SPI0, PSC_POWERDOMAIN_ALWAYS_ON,
PSC_MDCTL_NEXT_ENABLE);
GPIOBankPinMuxSet();
// DSP 中断初始化
InterruptInit();
// SPI 初始化
SPIInit();
GPIOINIT();//用gpio模拟了reset
}

void SPIInit(void)
{
unsigned char cs = 0x08;
unsigned char dcs = 0x08;
unsigned int val = SIMO_SOMI_CLK_CS;

SPIReset(SOC_SPI_0_REGS);

SPIOutOfReset(SOC_SPI_0_REGS);

SPIModeConfigure(SOC_SPI_0_REGS, SPI_MASTER_MODE);

SPIClkConfigure(SOC_SPI_0_REGS, 228000000, 1500000, SPI_DATA_FORMAT0);

SPIPinControl(SOC_SPI_0_REGS, 0, 0, &val);

SPIDefaultCSSet(SOC_SPI_0_REGS, dcs);

// 配置 SPI 数据格式
SPIDataFormatConfig(SPI_DATA_FORMAT0);

// 配置 SPI 数据格式及片选信号
SPIDat1Config(SOC_SPI_0_REGS, (SPI_CSHOLD | SPI_DATA_FORMAT0), cs);

// 映射中断到 INT1
SPIIntLevelSet(SOC_SPI_0_REGS, SPI_RECV_INTLVL | SPI_TRANSMIT_INTLVL);

// 使能 SPI
SPIEnable(SOC_SPI_0_REGS);
}

//我的数据收发函数

uint8_t SPI_ReadWriteByte(uint8_t txData)
{
// while (SPI_I2S_GetFlagStatus(WIZ_SPIx, SPI_I2S_FLAG_TXE) == RESET);
while( HWREG(SOC_SPI_0_REGS + SPI_SPIBUF) & (0x20000000));
SPITransmitData1(SOC_SPI_0_REGS,txData);
while( HWREG(SOC_SPI_0_REGS + SPI_SPIBUF) & (0x80000000));
return SPIDataReceive(SOC_SPI_0_REGS);
}