使用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); }
[ 本帖最后由 libindavis 于 2011-8-20 17:36 编辑 ]
|