求助stm23模拟spi速率

2020-01-01 17:45发布

我是软件模拟SPI,用逻辑分析测得SPI速率只有300多K呢,太慢了吧,不应该这么慢吧?
代码如下:
{
    uint8_t   WriteData, ReadData;
    uint8_t   i, j;
   
    ADC_SCLK(1);
    for(i=0; i<NumberOfByte; i++)
    {
        WriteData = *(WriteBuffer + i);
        ReadData = 0;

        for(j=0; j<8; j++)
        {
            ADC_SCLK(1);
            if(0x80 == (WriteData & 0x80))
            {
                ADC_MOSI(1);     
            }
            else
            {
                ADC_MOSI(0);      
            }
            WriteData = WriteData << 1;
            ADC_SCLK(0);
            ReadData = (ReadData<<1) | ADC_MISO_READ();
        }
        *(ReadBuffer + i)= ReadData;
    }  
    ADC_SCLK(1);
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
zxq6
1楼-- · 2020-01-02 07:49
换硬件spu,最大18m,简单粗暴
小朋友爱学习
2楼-- · 2020-01-02 12:39
not_at_all 发表于 2017-1-1 14:04
直接操作寄存器     参照正点原子的例程  sys.h
-------------------------------------------------
//位 ...

都是高人呀,我试试吧,这样写就不好维护了,看着比较麻烦。
小朋友爱学习
3楼-- · 2020-01-02 16:34
NJ8888 发表于 2017-1-1 16:01
小朋友,stm32不会这么慢,但stm23就难说了

测得SCLK波形频率就是300多,还没在下降沿、上升沿延时呢
chunjiu
4楼-- · 2020-01-02 19:11
小朋友爱学习 发表于 2017-1-1 20:02
测得SCLK波形频率就是300多,还没在下降沿、上升沿延时呢

用汇编 ... 裸奔,否则 300KHz 对得起你了。

一周热门 更多>