本帖最后由 prince2010 于 2018-12-6 10:08 编辑
代码如下——
SPI1_CS0_Enable();
for(i = 0; i < 1000; i++)
{
SPI1->DR = DataIn
;
while(!(SPI1->SR & SPI_I2S_FLAG_RXNE)); //等待一个字节接收完
DataOut = SPI1->DR; //返回SPI1接收的数据
}
SPI1_CS0_Disable();
系统时钟72MHz,可是用示波器观察,循环体就这么几句代码,字节间发送间隔竟然达到1us!!!
大家帮忙看看
补充:以下是SPI 时钟引脚的波形。
如果开启高优化后软件不能运行,大部分和“volatile”有关。
先把优化开到最高,有问题再一步步解决,可以参考下图来查找问题可能的原因:
C 程序中的怪异现象.png (1.28 MB, 下载次数: 0)
下载附件
C程序中的怪异现象
2018-12-6 19:32 上传
一周热门 更多>