调用SPI_I2S_SendData后,用逻辑分析仪看了一下波形,等待SPI_I2S_FLAG_BSY清零的时间好像比较长。 我使用36M的APB1总线驱动SPI2,发现等待的时间为1.22us,如果去掉程序的的检测SPI_I2S_FLAG_BSY清零的代码的话,等待时间为500ns,但数据出错。 上述的等待时间是波形上,第一个8位数据发送完毕到第二个8位数据开始发送的时间。
我的代码: static uint8 JTAG_TAP_HS_Operate(uint8 tdi,uint8 tms) { uint8 ret;
JTAG_TAP_HS_WaitReady();// 等待完成 ret = SPI_I2S_ReceiveData(JTAG_TAP_HS_SPI_M);
SPI_I2S_SendData(JTAG_TAP_HS_SPI_S,tms); SPI_I2S_SendData(JTAG_TAP_HS_SPI_M,tdi);
return ret; }
这个时间还能否进一步缩短的? 我测试过超频总线速度到72M,这个时间可以进一步缩短,但如果小于1us的话,比较容易出错 |