unsigned char SSP_SendData(unsigned char data) { // IOCLR = SLAVE_CS; // Ñ¡Ôñ´Ó»ú SSPDR = data; while( (SSPSR & 0x01)==0 ); // µÈ´ýTFEÖÃ룬¼´·¢ËÍFIFO¿Õ // IOSET = SLAVE_CS; return(SSPDR); }
大家发觉有什么问题没有?
刚开始用时就怀疑有问题的,后来使用证实确实存在问题, 不应该发送FIFO空就返回数据。应该SSP空闲时反回数据 unsigned char SSP_SendData(unsigned char data) { // IOCLR = SLAVE_CS; // Ñ¡Ôñ´Ó»ú SSPDR = data; while( (SSPSR & 0x10) ); // µÈ´ýTFEÖÃ룬¼´·¢ËÍFIFO¿Õ // IOSET = SLAVE_CS; return(SSPDR); } |