ARM发写命令到flash,可以检测到时钟和片选以及数据,读的时候,使用示波器时钟、片选及数据都检测不到
代码如下:
s32 Flash_Read(u32 u32Addr, u8 *pu8Data, u16 u16Len) { u8 u8AddrH = 0; u8 u8AddrM = 0; u8 u8AddrL = 0; u8 u8Data = 0; u16 u16Index = 0; // Wait until SSI0 is done transferring all the data in the transmit FIFO.while(SSIBusy(SSI0_BASE)){} u8AddrL = (u8)(u32Addr & 0xff); u8AddrM = (u8)((u32Addr >> 8) & 0xff); u8AddrH = (u8)((u32Addr >> 16) & 0xff); /* 下发读命令 */ SSIDataPut(SSI0_BASE, SPI_FLASH_READ_DATA); /* 写地址 */ SSIDataPut(SSI0_BASE, (u32)u8AddrH); SSIDataPut(SSI0_BASE, (u32)u8AddrM); SSIDataPut(SSI0_BASE, (u32)u8AddrL); /* 读取一个字节 */ for (u16Index = 0; u16Index < u16Len; u16Index++) { SSIDataGet(SSI0_BASE, (u32*)&u8Data); pu8Data[u16Index] = u8Data; } return AC_RET_OK; }
Haichao Zhu1:
求助解决。。。。
hao yan:
回复 Haichao Zhu1:
楼主解决了吗?我也遇到了这个问题
xyz549040622:
回复 Haichao Zhu1:
SPI的操作问题,可以参考官方的SPI操作例程,初始化好外设就好啦。