关于spi传输速度的疑问

2019-07-20 08:38发布

关于hal库里的 HAL_SPI_TransmitReceive这个函数
之前没用过spi,目前在调一个spi摄像头,时序要求1/27s内传输读取完一帧的图像数据,一帧图像9840个字节
通过使用下面这个函数
u8 SPI5_ReadWriteByte(u8 TxData)
{
    u8 Rxdata;
    HAL_SPI_TransmitReceive(&SPI5_Handler,&TxData,&Rxdata,1, 1000);      
     return Rxdata;                        
}
传输一个字节的数据,我用st-link Debug调试发现执行一次HAL_SPI_TransmitReceive()需要大概0.16ms的时间,这样算下来,光读完这一帧图像的数据就要1s多,
系统时钟方面也有尝试调高频率,但是并没有明显的改善。
是这个函数的效率问题么?还是我计算的方式问题?有什么建议的解决方案。

请各位大佬指点迷津,不胜感激。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
anylinkin
1楼-- · 2019-07-21 10:53
本帖最后由 anylinkin 于 2018-4-13 14:31 编辑

STM32F7上,SPI读写的有效速度可以超过2M字节每秒的,远远超过你这里不超过270K字节每秒的速度
你看这个WIFI模块,和STM32F7就是通过SPI相连的,27MHz SPI下,实测的系统有效速度能到1.5MBytes/s,这意味着, SPI的读写速度起码不低于这个数值。

https://item.taobao.com/item.htm?id=550946928238
嘬腮怪人
2楼-- · 2019-07-21 13:57
anylinkin 发表于 2018-4-13 14:29
STM32F7上,SPI读写的有效速度可以超过2M字节每秒的,远远超过你这里不超过270K字节每秒的速度
你看这个WI ...

感谢你的解答,我后来用示波器测试速度是够的,可能mdk调试里的时间不是很准。

一周热门 更多>