社区导航

 

搜索
查看: 5977|回复: 12

STM32的运行速度到底是多少?

[复制链接]

94

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2008-5-30 16:03 | 显示全部楼层 |阅读模式
刚才做实验发现一个大问题,使用ST的固件库 执行如下程序
 while(1)
{
    GPIO_SetBits(GPIOB,GPIO_Pin_11);
    GPIO_ResetBits(GPIOB,GPIO_Pin_11);
 }
用示波器看完整的波形周期竟然是400ns,反汇编也就7条指令,为何执行了400ns????。。。cpu72M速度,就算除去指令延迟,减一倍的速度,也应该是32M的速度啊,那单周期指令也应该是30ns,7条也就210ns,难道这7条指令全赶上多周期的了?

STM103 内核72M flash取指令1周期延迟 指令缓冲开 APB1=36M APB2=72M AHB=72M
GPIO 50M 推挽

难道这就是STM32的速度?不明白请指点一下
据我所知AVR在18M时用汇编:
     ldi R16,0
     ldi R17,0xff
here:out PORTB,r16
     out PORTB,r17
     rjmp here
用的时间应该是6时钟周期=300ns,依然比STM32快。。。。
此帖出自stm32/stm8论坛

99

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2008-5-30 16:18 | 显示全部楼层

请区别CPU的运行速度和GPIO运行速度的区别

GPIO的速度比CPU慢,你的测试中I/O口的速度拖慢了CPU的速度,所以你这样的测试没有意义。

以前有很多关于这个问题的讨论,你可以在论坛中搜一下。

回复

使用道具 举报

109

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2008-5-30 16:22 | 显示全部楼层

接着问


GPIO不是最快可以18m翻转么?那么你们GPIO 2M  10M 50M的速度设置是否有意义呢?实际翻转速度才2M嘛

回复

使用道具 举报

99

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2008-5-30 16:30 | 显示全部楼层

以前讨论过多次,管脚速度设置表示能通过的信号频率

但如果信号没有这么高的频率,设置高的频率也没用。

请不要把GPIO模块的速度与管脚速度混为一谈,这是两个概念。


举个例子:高速公路允许最高120公里/小时,一部最快只能跑50公里/小时的车在这个高速公路上永远也跑不出120公里/小时的速度。

回复

使用道具 举报

103

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2008-5-30 21:30 | 显示全部楼层

STM32的GPIO速度确实不快

                                 相对于LPC的增强IO来比

回复

使用道具 举报

118

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2008-6-1 21:09 | 显示全部楼层

STM32速度问题

举个例子:高速公路允许最高120公里/小时,一部最快只能跑50公里/小时的车在这个高速公路上永远也跑不出120公里/小时的速度。


 GPIO模块速度达不到么?是不是管脚干别的用可以达到速度如spi时能不能达到18M呢

回复

使用道具 举报

116

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2008-6-1 21:14 | 显示全部楼层

spi可以到18M

                                 信号波形还好,再高的话信号的波形就类似正弦波了(不过发现默写设备还可以操作)

回复

使用道具 举报

105

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2008-6-1 21:24 | 显示全部楼层

STM32的GPIO模块最高可达到18MHz信号输出,SPI也能达到18MHz

                                  

回复

使用道具 举报

3

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2020-1-3 23:35 来自手机 | 显示全部楼层
硬件PWM可以跑到36MHZ

回复

使用道具 举报

1219

TA的帖子

2

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2020-1-4 12:57 | 显示全部楼层

STM32是通过总线操作GPIO的,不是CPU核心直接到GPIO,总线的操作是比CPU要慢很多的!如果想让引脚输出更加快速的输出波形,只能使用PWM系统。PWM是外设系统,直接操作输出引脚,不需要CPU核心的干预。对于非周期的信号,最好是用别的方案,如:FPGA。不要把总线的运行速度和CPU核心速度混淆。总线速度是很重要的!所以对于PC机CPU和主板是要相配的才能有好的性能。

stm32.jpg


回复

使用道具 举报

3602

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2020-1-6 14:22 | 显示全部楼层

库函数有开销


回复

使用道具 举报

3602

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2020-1-7 12:37 | 显示全部楼层

另外,io口配置的时候要配置成高速才行


回复

使用道具 举报

5

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2020-5-8 14:57 | 显示全部楼层

SMT32F10x系列最快72MHz,最快的是STM32H7系列,400MHz频率。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/4 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-6-4 10:29 , Processed in 0.445376 second(s), 34 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表