使用nios自带的SPI 内核的IORD_ALTERA_AVALON_SPI_RXDATA()命令,但在MISO线上观察不到数据,也就是说rxdata没有读取到数据,同时读取的过程中SCK上也是没有时钟信号的,这很怪异,使用读命令的话SCK不是应该输出时钟信号的么??。。。有没有人能帮忙解决下?谢谢啊~
代码如下:
void FlashRead(alt_u32 len, alt_u8 *buffer) //读入指定字节
{
unsigned int i;
IOWR_ALTERA_AVALON_SPI_SLAVE_SEL(SPI_0_BASE,1);// select slave device
IOWR_ALTERA_AVALON_SPI_CONTROL(SPI_0_BASE,0x400);//force the SS_n to output
for (i=0;i<len;i++)
{
while((IORD_ALTERA_AVALON_SPI_STATUS(SPI_0_BASE) & ALTERA_AVALON_SPI_STATUS_RRDY_MSK) == 1);
*buffer++ = GetSPIByte(); // read data from SPI
}
while ((IORD_ALTERA_AVALON_SPI_STATUS(SPI_0_BASE) & ALTERA_AVALON_SPI_STATUS_TMT_MSK) == 0);
IOWR_ALTERA_AVALON_SPI_CONTROL(SPI_0_BASE, 0);
}