打印

stm32时钟周期问题请教

[复制链接]
1636|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
magic_yuan|  楼主 | 2014-3-3 18:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   各位大侠,
       STM32的GPIOB口推挽输出一个电平。GPIOB口有16个引脚,因此下面这条指令执行后每个引脚的电平都会变换。
       GPIOB-->CRL|=0X00300000;
       问题:1,这条指令应该是消耗一个时钟周期吧?而不是16个时钟周期?
        2,STM32的IO口实有速度限制的,推挽时设置的是50MHZ,那么IO口最多输出时50MHZ方波?但系统时钟是72MHZ,这会不会有些冲突呢?
        我的意思是STM32的内部指令运行速度快过IO的变化速度。IO的电平还没有跳变,STM32内部要执行下一个电平了?
       十分感谢啊!

相关帖子

沙发
ayb_ice| | 2014-3-4 10:44 | 只看该作者
这都哪跟哪啊

消耗多少周期,C是看不出来的,要看反汇编
但肯定不是一个周期,可以去看指令手册

使用特权

评论回复
板凳
magic_yuan|  楼主 | 2014-3-4 12:19 | 只看该作者
ayb_ice 发表于 2014-3-4 10:44
这都哪跟哪啊

消耗多少周期,C是看不出来的,要看反汇编

多谢大侠,
  刚在网上搜了下资料,说是还和流水线有关系。说普通指令一个周期内可以完成。

使用特权

评论回复
地板
airwill| | 2014-3-4 16:07 | 只看该作者
IO口最多输出时50MHZ方波? 其实这只是硬件驱动的反应能力, 跟指令执行没有关系.
如果驱动不足, 在指令给端口快速翻转时, 外面测到的波形可能就是锯齿波形状

使用特权

评论回复
5
yhn1973| | 2014-3-4 17:30 | 只看该作者
翻转IO至少需要2个时钟

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:发到3000帖时,生活大概完成了一种转折。

359

主题

2770

帖子

7

粉丝