在线时间13 小时
UID3633657
注册时间2020-4-12
NXP金币0
TA的每日心情 | 奋斗 2020-5-18 11:57 |
---|
签到天数: 2 天 连续签到: 1 天 [LV.1]初来乍到
注册会员

- 积分
- 152
- 最后登录
- 2020-10-20
|

楼主 |
发表于 2020-6-1 10:06:24
|
显示全部楼层
前段时间把这个问题解决了,分享一下给以后遇到此问题的朋友参考,思路和版主说的一样,就不多解释了,谢谢版主!
status_t sd_spi_SetBps(uint32_t frequency)
{
uint32_t sourceClock;
//status_t result;
if (SD_SPI_BASE == SPI1)
sourceClock = CLOCK_GetFreq(kCLOCK_CoreSysClk);
else if (SD_SPI_BASE == SPI0)
sourceClock = CLOCK_GetFreq(kCLOCK_BusClk);
SPI_MasterSetBaudRate(SD_SPI_BASE, frequency, sourceClock);
return kStatus_Success;
}
status_t sd_spi_Exchange(uint8_t *in, uint8_t *out, uint32_t size)
{
status_t status = kStatus_Success;
// SPI transefer config
spi_transfer_t sd_spi_transfer = {
.txData = in, // Send buffer
.rxData = out, // Receive buffer
.dataSize = size // Transfer bytes
};
status = SPI_MasterTransferBlocking(SD_SPI_BASE, &sd_spi_transfer);
return status;
}
sdspi_host_t sd_host = {
.busBaudRate = SPI_BAUDRATE_24M, // set SPI Baud Rate to 24MHz for SD Card
.setFrequency = sd_spi_SetBps, // set callback of (*setFrequency) in sdspi_host_t
.exchange = sd_spi_Exchange // Set callback of (*exchange) in sdspi_host_t
}; |
|