你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F030 SPI 最高速率问题

[复制链接]
yangguo86 提问时间:2023-6-5 11:29 / 未解决

问题1:STM32F030时钟没有 APB2, 为什么库函数会有 RCC_APB2PeriphClockCmd ?貌似 SPI1是通过这个函数来操作?

问题2:看数据手册,SPI 最大速率 18Mbps,如果主频设置为 48M,预分频设置为/2,理论上是 24M,但实际是 18M,是不是这样理解?还是设置预分频的时候要注意,只能/4=12M,不能大于 18Mbps;

问题3:使用 SPI 串口屏显,会有点卡屏,除了 SPI 速率设置,还有什么会影响刷屏效果?

收藏 评论3 发布时间:2023-6-5 11:29

举报

3个回答
xmshao 回答时间:2023-6-5 11:56:24
RCC_APB2PeriphClockCmd 是用来开启外设时钟的,SPI1挂在APB总线上。


你这里的18Mb/s,是波特率。如果APB是48MHz,设置分频系数至少是4,如果选2或1就超了。


刷新速率对卡屏肯定有影响,SPI速率的确很关键的一方面。你或许可以将AHB配置为36MHz,2分频后以满足


SPI的最大速率。当然,时钟调整这点你可以综合考虑。


另外,就是你代码处理上是否有优化空间呢?
yangguo86 回答时间:2023-6-5 13:47:39

xmshao 发表于 2023-6-5 11:56
RCC_APB2PeriphClockCmd 是用来开启外设时钟的,SPI1挂在APB总线上。</p>
<p>

主频一定要设置为 48M,这个是其他外设要求的:

能否解答下面两个疑问:还望解答

1、SPI 时钟是通过 HCLK?APB1?APB2? 按库函数调用貌似APB2,但在参考手册,Clock Tree 里面没有 APB2 ?

2、如果设置 48M 的主频,是不是 SPI 预分频智能设置为 48/4=12M? 如果我设置为 48/2=24M(当能,这里不要求 24M,看看能否达到18M),会不会出现异常 ?

butterflyspring 回答时间:2023-6-5 14:39:18
1. 是在APB总线上,在函数注释中有说明,在memory mapping 中也能查到。
2. 如果总线是48M,那么分频只能设置为4, 在cubemx 的软件中也有提示。如果代码非得除2达到24M,一定会出
   问题的。或批量或某些条件下,但是对与原厂来说,必须限制应用频率。
   所以建议楼主不要超频使用。
STM32F030 CLOCK TREE.PNG STM32F030 CLOCK TREE 2.PNG
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版