打印

请教下,GPIO口的最大速度为50M,而HCLK为72M

[复制链接]
2056|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
江陵龙少|  楼主 | 2011-3-21 19:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
是这样的:
我在stm103上做流水灯试验,选择使用HSI/2(即4M)送入PLL后作为SYSCLK,AHB  APB1  APB2均不分频,PLLMUL倍频因子为12时(48M系统时钟),或为13(52M系统时钟)时流水灯均能正常点亮。
而当PLLMUL倍频因子为15或16时,流水灯运行就不对了,
这个是不是说明了GPIO 50M的最大速度?但我其中有delay()函数啊,感觉迷糊,请大侠指点下!
程序是:
main()
{
.....
    while(1)
   {
        LEDE0=1;
        LEDE1=1;
        delay();
        LEDE0=0;
        LEDE1=0;
        delay();
    }
}

其中delay()是这样的:
void delay(void)
{
   u32 i;
   for(i=0;i<0xfffff;i++);
}
沙发
IJK| | 2011-3-22 09:43 | 只看该作者
跟GPIO 50MHz的最大速度没有关系,这个速度只影响上升沿、下降沿。
估计LZ多半没有设置Flash的等待,系统主频在24M以上时就应该设置Flash为1个等待周期,48M以上时就应该设置Flash为2个等待周期。STM32F103的Flash虽然可以超频不少,但LZ已经超频得太多了。

使用特权

评论回复
板凳
江陵龙少|  楼主 | 2011-3-28 22:57 | 只看该作者
感谢IJK的指点!
在我把FLASH_ACR寄存器根据SYSCLK重新设置后,果然解决了问题。
但现在仍然不明所以然,俗话说“伤其十指,不如断其一指”,为了把这个概念彻底搞清楚,再把帖子顶顶。

当我没有设置FLASH_ACR时,有如下现象;
当PLLMUL倍频因子为15时,在复位释放后最初的5秒左右的时间内,LED灯有规律闪烁,之后彻底熄灭;
当PLLMUL倍频因子为16时,LED灯没有任何反应。

15是不是1个临界值呢?说明刚开始还能从FLASH中读出指令,5秒后就读不到了,为什么就读不到了呢?
是不是说CPU的速度超过了FLAH的反应速度呢?这个等待周期怎么理解?
请大虾们指点!

使用特权

评论回复
地板
江陵龙少|  楼主 | 2011-3-28 23:03 | 只看该作者
另外IJK大侠说 GPIO 50M的指标影响上升沿和下降沿,再具体点是什么

使用特权

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

本版积分规则

85

主题

279

帖子

2

粉丝