求助啊!!!!!!STM32的IO速度与指令执行速度的问题??

2019-03-23 19:47发布

72Mhz的STM32 ,PLCK2=72Mhz
用逻辑分析仪测试,得到的速度为0.24us/指令,理论上应该是0.14us/指令(模拟器验证)
请问这个速度为什么会这么慢72Mhz的STM32F103实际只有40Mhz左右

测试代码

          ldr r3, =GPIOG_BSRR
          mov r1, #0x00100000 //PG4 上升
          str r1, [r3]
          ALIGN   
         
          mov r1, #0x00000010         
          mov r1, #0x00000010
          mov r1, #0x00000010         
          mov r1, #0x00000010
          mov r1, #0x00000010         
                                             
          mov r1, #0x00000010         
          mov r1, #0x00000010
          mov r1, #0x00000010         
          mov r1, #0x00000010
          mov r1, #0x00000010

          mov r1, #0x00000010         
          mov r1, #0x00000010
          mov r1, #0x00000010         
          mov r1, #0x00000010
          mov r1, #0x00000010

          mov r1, #0x00000010         
          mov r1, #0x00000010
          mov r1, #0x00000010         
          mov r1, #0x00000010
          mov r1, #0x00000010

          mov r1, #0x00000010         
          mov r1, #0x00000010
          mov r1, #0x00000010         
          mov r1, #0x00000010
          mov r1, #0x00000010

          mov r1, #0x00000010 //PG4 下降
          str r1, [r3]

新建 Windows位图图像.JPG

IRQ/Debug 通道捕捉PG4

用分析仪测得PG4升降周期为0.8750us,分析仪带宽为24Mhz,有误差存在,但并不影响测速
(0.8750 - 0.25)/25 = 0.025us, 0.25为IO翻转耗时,8Mhz的翻转速度
代码是在flash中跑的,平均 0.025us/指令,大约40Mhz的频率

还有就是翻转速度为什么这么慢,不管我怎么设置都只有8Mhz的速度,理论上可以实现18Mhz

以上请教高手指点迷津!!

[ 本帖最后由 zxdplay 于 2012-7-8 17:16 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
dontium
1楼-- · 2019-03-24 04:03
/ 楼主还有如用汇编编一个长一些的延时函数,并控制IO端口状态,然后测一下端口状态的变化时间或频率

你用的仪器是不是个虚拟的?如果是名牌产品,我就不怀疑了。
zxdplay
2楼-- · 2019-03-24 08:07
 精彩回答 2  元偷偷看……
zxdplay
3楼-- · 2019-03-24 08:45
ldr r3, =PG7_BRR
          ldr r4, =PG7_BSRR
          mov r1, #0x1
          str r1, [r3]
          str r1, [r4]
          bx lr



很奇怪,用推挽输出能够达到18Mhz左右
开漏输出翻转周期始终在在 0.25us-0.33us左右,推挽可以达到83ns以下

dontium
4楼-- · 2019-03-24 13:48
用延时函数(必须精确知道它的延时周期)控制端口翻转,再配合测量端口的频率,这样是可行的
zxdplay
5楼-- · 2019-03-24 15:46
 精彩回答 2  元偷偷看……

一周热门 更多>