这个例程是STM32F103+OM6220的模块做的数据收发吞吐量测试例程。硬件4线SPI,速率8M,有IRQ脚中断,里面也把SPI的时序图抓出来了。数据包长度是32字节,不带ACK的方式1秒钟能接受1733包数据,也就是1733*32=55456字节=55K多数据,带ACK的方式1秒钟能收到852包数据,也就是852*32=27264字节=27k左右。 需要特别注意的是,在有ACK的情况下,接收端在收到完整数据之后,就会产生IRQ中断,但是此时ACK信号实际上是还灭有回完出去的,所以这里要根据实际情况加点延时进来,尽量压缩这个延时以提高数据吞吐量。 发送端是发送数据之后,自动转入接收ack,如果接收到ACK就产生接收到数据标志,如果是最大重传就产生最大重传标志,并且产生IRQ中断,所以发射端是在完成了之后才产生的IRQ中断,不需要加入延时。 |
