我用M4控制ADS1254,ADS1254只能读,我是通过SPI。
现在有个问题:我要读数据,SCLK的时钟是怎么样产生的?为了产生SCLK是不是先发送,然后再接收。
可是有个问题,请看图,我先发送3个8位,再接收3个8位,中间是延时,为了发送完成,可是24位时钟产生了2次,刚好是一次发送一次接收,难道 接收也产生时钟么?
SSIDataPutNonBlocking(SSI3_BASE,0); //接收前发送数据 产生3个CLK
SSIDataPutNonBlocking(SSI3_BASE,0);
SSIDataPutNonBlocking(SSI3_BASE,0); //
OSTimeDly(1); //发送上面的数据大概需要8ms
SSIDataGetNonBlocking (SSI3_BASE, &ulDataRx[0]);
SSIDataGetNonBlocking (SSI3_BASE, &ulDataRx[1]);
SSIDataGetNonBlocking (SSI3_BASE, &ulDataRx[2]);
我把程序改为只是接收,不发送,可是波形一次都没有,就是SCLK根本没波形。
SSIDataGetNonBlocking (SSI3_BASE, &ulDataRx[0]);
SSIDataGetNonBlocking (SSI3_BASE, &ulDataRx[1]);
SSIDataGetNonBlocking (SSI3_BASE, &ulDataRx[2]);
这是为什么?我只要产生一次,为了读出数据。我要怎样写程序?