接收函数有什么问题<br />我现在用lpc2368控制ad7716,初始化后在drdy管脚能看到波形,说明初始化可以了,但是接收就是不好使。 <br />DWORD SSPInit(void) <br />{ <br /><br /><br /> BYTE i, Dummy; <br /> PCONP |= (1 << 10); <br />// PINSEL0=(1<<15)| <br />// (1<<17)| // <br />// (1<<19); // <br /> PINSEL0 = (0x02 << 12) | (0x02 << 14) | (0x02 << 16) | (0x02 << 18); //p0.7 sclk, P0.8 miso ,P0.9 mosi <br /><br /> PINSEL1 =0X0; //P0.17AS TFS P0.18AS RFS P0.19 AS RST <br /><br /> IODIR0 =rd_cs | wr_cs | rst; <br /><br /> IOSET0 = rd_cs | wr_cs; <br /><br /> /* Set DSS data to 8-bit, Frame format SPI, CPOL = 0, CPHA = 1, and SCR is 15 */ <br /> SSP1CR0 = 0x0F87; <br /><br /> /* SSPCPSR clock prescale register, master mode, minimum divisor is 0x02 */ <br /> SSP1CPSR = 0x2; <br /><br />// for ( i = 0; i < FIFOSIZE; i++ ) <br />// { <br />// Dummy = SSP1DR; /* clear the RxFIFO */ <br />// } <br /> /* Device select as master, SSP Enabled, NO loopback operational mode */ <br /> SSP1CR1 |= SSPCR1_SSE; <br /> <br /><br /> return TRUE; <br /><br /><br />} <br /><br />void SSP_SendData(BYTE data) <br />{ <br /> wr_cs_low(); <br /> while ( (SSP1SR & 0x02) == 0 ); // 等待发送FIFO留出空间 <br /> SSP1DR = data; <br /> while ((SSP1SR & 0x10) == 0x10); // 等待数据帧发送完毕 <br /> wr_cs_high(); <br /> return ; <br /> <br />} <br /><br />BYTE SSP1Receive( void ) <br />{ <br /> // DWORD i; <br /> BYTE buf; <br /> rd_cs_low(); <br /> // for ( i = 0; i < Length; i++ ) <br /> // { <br /> <br />// SSP1DR = 0xAA; <br /> while ( !(SSP1SR & SSPSR_RNE) ); <br /> buf = SSP1DR; <br />// buf++; <br /> // } <br /> rd_cs_high(); <br /> return buf; <br />} |
|