407的系统时钟真的可以达到168MHz?

2019-07-21 01:59发布

[mw_shl_code=c,true]void RCC_Init_t(void) { RCC->CFGR &= ~0x0003; delay(10); RCC->CR &= ~(1<<24); RCC->LLCFGR &= ~0x7fff; RCC->LLCFGR |= 0x8; RCC->LLCFGR |= (168<<6); RCC->CR |= (1<<24); delay(10); RCC->CFGR |= 0x0002; }[/mw_shl_code]
这是我的时钟初始化程序 [mw_shl_code=c,true]int main(void) { RCC_Init_t(); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE); GPIOI_Init(); while(1) { i++; GPIOE->ODR = ((i%2)<<2); } }[/mw_shl_code]
while循环里面只是将引脚高低点低平翻转,结果输出的只有3MHz。这是怎么回事。难道系统时钟不指while里面程序运行吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
Theone
1楼-- · 2019-07-21 06:06
 精彩回答 2  元偷偷看……
yzl
2楼-- · 2019-07-21 06:51
回复【2楼】Theone:
---------------------------------
主频不是指指令的执行速度吗?IO翻转不会50个时钟周期吧
mack13013
3楼-- · 2019-07-21 06:54
 精彩回答 2  元偷偷看……
Theone
4楼-- · 2019-07-21 12:15
回复【3楼】yzl:
---------------------------------
主频只是说你执行一条单周期的汇编指令有那么多。这个io反转是两个概念。你可以看看你的代码翻译成汇编以后每次翻转执行了多少次汇编指令,每条汇编使用多少个时钟周期。
Admin
5楼-- · 2019-07-21 17:48
不是真的可以,是完全可以。。。。。。。。。而且是小意思。。。

一周热门 更多>