SPI通信速度的优化!

     本来想通过spi中断来大幅度的提高速度,分析的很透彻了,哪知道不可行.加入操作系统后的中断服务程序太臃肿了,一次中断处理超过了50us,这样基本不可能通过中断来提高速度,因为spi每byte之间只有7us左右的空隙.

     想了很多办法,分析了1天,最后决定从汇编级别重写spi通信部分的程序,减少spi每byte之间的时间间隔.测试后发现效果好的惊人.播放320kbps的音乐,cpu的占用率从94%下降到了60%.

     我觉得还有提高的可能,等哪天有空了再把这个过程完整的记录下来.不得不说,这次优化速度的过程十分的愉快.

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
STM32是一款广泛应用于嵌入式系统开发的微控制器,其中SPI(Serial Peripheral Interface)通信在很多实际应用中都非常重要。下面介绍两块STM32的SPI通信程序。 程序一:主从模式SPI通信 这个程序中,主设备是基于STM32的开发板,从设备是外部SPI设备(如加速度传感器、OLED屏幕等)。 1.在主设备中,需要进行以下配置: a.配置SPI通信模式,设置工作模式为主模式。 b.设置SPI时钟分频,可以根据要求设置。 c.设置SPI数据位数、传送位置、先后顺序等。 d.设置NSS引脚和GPIO,控制通信的开始和结束。 2.在从设备中,首先需要使能SPI功能,然后再进行以下配置: a.配置SPI通信模式,设置工作模式为从模式。 b.设置SPI数据位数、传送位置、先后顺序等。 c.等待主设备的NSS信号,收到该信号后开始通信。 d.按照协议,发送和接收数据。 程序二:双向全双工SPI通信 在这个程序中,两块STM32设备相互通信,都可以作为主设备和从设备进行通信。 1.首先需要进行以下配置: a.配置SPI通信模式,设置工作模式为全双工模式。 b.设置SPI时钟分频。 c.设置SPI数据位数、传送位置、先后顺序等。 d.设置NSS引脚和GPIO,控制通信的开始和结束。 2.按照通信协议,进行双向通信。发送方主设备发送数据后,等待接收方从设备返回数据,然后再进行下一步操作,接收方从设备收到数据后进行处理,然后再发送数据给主设备。 通过以上两个程序的介绍,可以看出,实现SPI通信需要进行多项配置和协议的约定。在实际开发中,需要根据具体的设备和需求进行相应的调整和优化

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值