完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32F070F6P6选择内部时钟后,外部上电复位,有时点亮不了灯(外部晶振拆了);(20次有1到2次会出现)使用外部晶振是没有问题的。
配置信息如下: static void SetSysClock(void) { __IO uint32_t StartUpCounter = 0, HSIStatus = 0; /* SYSCLK, HCLK, PCLK configuration ----------------------------------------*/ /* Enable HSI*/ //使能内部时钟 RCC-》CR |= ((uint32_t)RCC_CR_HSION; /* Wait till HSI is ready and if Time out is reached exit */ //等待内部时钟起振 do { HSIStatus = RCC-》CR RCC_CR_HSIRDY; StartUpCounter++; } while((HSIStatus== 0) (StartUpCounter != HSI_STARTUP_TIMEOUT)); if ((RCC-》CR RCC_CR_HSIRDY) != RESET) { HSIStatus = (uint32_t)0x01; } else { HSIStatus = (uint32_t)0x00; } if (HSIStatus == (uint32_t)0x01) { /* Enable Prefetch Buffer and set Flash Latency */ //flash总线时钟使能 FLASH-》ACR = FLASH_ACR_PRFTBE | FLASH_ACR_LATENCY; /* HCLK = SYSCLK *///外设AHB总线时钟等于系统时钟 RCC-》CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; /* PCLK = HCLK *///外设APB总线时钟等于系统时钟 RCC-》CFGR |= (uint32_t)RCC_CFGR_PPRE_DIV1; /* PLL configuration = HSI/2 * 12= 48 MHz */ RCC-》CFGR = (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL)); RCC-》CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSI_Div2 | RCC_CFGR_PLLMULL12); //RC时钟2分频后 进行12倍频《/font》 /* Enable PLL *///使能锁相环倍频开关 RCC-》CR |= RCC_CR_PLLON; /* Wait till PLL is ready *///等待锁相环就绪 while((RCC-》CR RCC_CR_PLLRDY) == 0) { } /* Select PLL as system clock source *///选择锁相环输出时钟作为系统时钟 RCC-》CFGR = (uint32_t)((uint32_t)~(RCC_CFGR_SW)); RCC-》CFGR |= (uint32_t)RCC_CFGR_SW_PLL; /* Wait till PLL is used as system clock source *///等待锁相环输出时钟已经成为系统时钟 while ((RCC-》CFGR (uint32_t)RCC_CFGR_SWS) != (uint32_t)RCC_CFGR_SWS_PLL) { } } else { /* If HSI fails to start-up, the application will have wrong clock configuration. User can add here some code to deal with this error */ } } 有板子的朋友也可以下载HEX试试,PA10上电灯会亮。 |
|
相关推荐
1个回答
|
|
从您提供的信息来看,可能存在以下几个问题导致无法点亮灯:
1. 时钟未稳定:当选择内部时钟后,外部晶振并没有被使用。由于内部时钟的稳定性可能较差,可能会导致时钟不稳定。请确保内部时钟已经稳定后再进行操作。 解决方法:在配置内部时钟后,添加一个适当的延时来等待内部时钟稳定,例如使用`Delay()`函数。 2. 引脚配置错误:使用外部晶振时可能配置了正确的引脚,但是在选择内部时钟后,可能需要重新配置引脚。请确认引脚配置是否正确。 解决方法:在配置内部时钟后,重新配置引脚并使能对应的GPIO外设。 3. 时钟频率不匹配:外部晶振的频率可能与内部HSI的频率不匹配。可能需要对内部时钟频率进行调整。 解决方法:在配置内部时钟前,请使用正确的寄存器值来设置HSI的频率,以匹配外部晶振的频率。 如果以上方法没有解决问题,建议检查硬件电路和外部晶振是否存在异常,并确认是否有其他因素影响了灯的亮灭。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1574 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1519 浏览 1 评论
949 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
672 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1565 浏览 2 评论
1852浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
622浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
508浏览 3评论
516浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
494浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-15 07:19 , Processed in 0.769964 second(s), Total 83, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号