STM32 高系列程序向低系列程序的移植关注点

本文禁止转载。

有的时候,为了节约成本,MCU需要更换,程序需要移植

本文主要介绍了STM32 F4系列程序移植到STM32 F0 系列中,SPI移植的一个关注点

首先,就是时钟问题。

F4最高是200MHZ的时钟,F0最高是48MHZ的时钟.这里的时钟,是指的系统时钟,SYSTEM CLOCK

SPI接口通常是挂在APB1或者APB2上的

通常,APB1的时钟速率要比APB2的时钟速率要高

F4: APB1的时钟是系统时钟的一半,即100MHZ.APB2的时钟是系统时钟的四分之一,即50MHZ

F0:APB1和APB2都是1分频系统时钟,即都是48MHZ

SPI的时钟速率,是根据APB1或者APB2的时钟速率再分频得到的。

假设,在F4系列上,SPI接口是挂在APB1上的,是32分频,及100M/32

移植到F0系列上,也是32分频的话,就会变成48M/32 

这时候你会发现,移植的代码没有问题,逻辑也是保持一致的,为什么SPI的时序就是不对 

问题很有可能出现在这里

此外,由于MCU的系统时钟变低,SPI中的读写时序也变了,需要延迟更大的时间,以确保SPI读写正确。

比如,以SPI 的CS片选信号为例

在200MHZ的主频下,CS可以很快的拉低,并保持稳定

48MHZ主频下,CS拉低速度就会变慢(也就是说时间周期变长了)

此刻,需要延迟时间扩大一点,比如,200MHZ的时候只需要延迟10us就可以保证时序稳定,48MHZ的时候需要延迟20us确保时序稳定。

同理,定时器也是采用的系统时钟作为分频。所以移植的时候,确保定时器的时钟更改分频系数,确保定时准确性。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sgmcy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值