stm32时钟周期问题请教

[复制链接]
 楼主| 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方波? 其实这只是硬件驱动的反应能力, 跟指令执行没有关系.
如果驱动不足, 在指令给端口快速翻转时, 外面测到的波形可能就是锯齿波形状
yhn1973 发表于 2014-3-4 17:30 | 显示全部楼层
翻转IO至少需要2个时钟
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

359

主题

2770

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部