完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
自己画的板子,由于外部晶振离芯片太远不能起振,所以想用内部HSI晶振,在裸机的时候已经实现了 内部晶振64MHz下运行 ,下面是时钟配置代码,但是 如果用在原子的ucous ii 代码里 程序就一直卡在 第五行 运行不下去,求大神指点一下啊
1 IMPORT __main 2 ; IMPORT SystemInit 3 ; LDR R0, =SystemInit 4 ; BLX R0 5 LDR R0, =__main 6 BX R0 7 ENDP 下面是内部时钟配置代码 void RCC_Configuration(void) { RCC_DeInit(); /*将外设RCC寄存器重设为缺省值 */ RCC_HSICmd(ENABLE); while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)== RESET);//等待HSI就绪 RCC_HCLKConfig(RCC_SYSCLK_Div1); /*设置AHB时钟(HCLK) RCC_SYSCLK_Div1——AHB时钟 = 系统时*/ RCC_PCLK2Config(RCC_HCLK_Div1); /* 设置高速AHB时钟(PCLK2)RCC_HCLK_Div1——APB2时钟 = HCLK*/ RCC_PCLK1Config(RCC_HCLK_Div2); /*设置低速AHB时钟(PCLK1)RCC_HCLK_Div2——APB1时钟 = HCLK / 2*/ //FLASH_SetLatency(FLASH_Latency_2); /*设置FLASH存储器延时时钟周期数FLASH_Latency_2 2延时周期*/ //FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); /*选择FLASH预取指缓存的模,预取指缓存使能*/ RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_16);/*设置PLL时钟源及倍频系数,频率为8/2*16=64Mhz*/ RCC_PLLCmd(ENABLE); /*使能PLL */ while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) ; /*检查指定的RCC标志位(PLL准备好标志)设置与否*/ RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /*设置系统时钟(SYSCLK) */ while(RCC_GetSYSCLKSource() != 0x08); /*0x08:PLL作为系统时钟 */ } |
|
相关推荐
2个回答
|
|
|
|
|
|
|
|
|
不知道你咋设的,HSI最高PLL到36M
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1022 浏览 1 评论
1852 浏览 0 评论
1833 浏览 1 评论
3258 浏览 5 评论
3585 浏览 9 评论
1025浏览 1评论
1852浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1364浏览 1评论
1855浏览 0评论
1180浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 14:18 , Processed in 0.747111 second(s), Total 76, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4951