STM32的SPI速度怎么这么慢?

2019-12-14 13:23发布

本帖最后由 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 时钟引脚的波形。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
qianj1986
1楼-- · 2019-12-17 15:58
laoshuhunya 发表于 2018-12-6 19:33
如果开启高优化后软件不能运行,大部分和“volatile”有关。
先把优化开到最高,有问题再一步步解决,可 ...

赞一个
qwe2231695
2楼-- · 2019-12-17 18:56
1us 都有1M的代码速率了,可以了。连续读取使用DMA。

一周热门 更多>