在调SPI通信的过程中,发现一个很奇怪的问题 我的slave能正常接收master传来的数据,可是master却不能总是接不对slave的数据,不知道什么原因,开始认为是不是miso角没有上拉引起,现在加了上拉似乎也没有什么改善。 unsigned char n; SPI0_SCR; //clear overflow flag SPI0_DRR; //clear overflow flag while ( !(SPI0_SCR & 0x0001) )asm(nop); for ( n = 0; n < 34; n++ ){ SPI0_DTR = 0x0F0F; while ( !(SPI0_SCR & 0x0008) )asm(nop); Receive[n] = SPI0_DRR; //Receive is a data array. delayus(4); //delay function. }
master的发送和接收都是查询完成,没开中断,程序如上。 想向大家请教下什么原因会引起这种问题,看到的都给点建议啊,谢谢。
[此贴子已经被作者于2007-1-29 21:08:19编辑过] |