完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
按照3.5库函数测试一下systick,发现所设置的延时与预期的不对。原本预期是1s灯转换一次状态,但实际上是9s左右转换一次。程序如下,求指点:
void SysTick_Configuration(void) { u32 a; a = SystemCoreClock; if(SysTick_Config(SystemCoreClock/1000)) while(1); } __IO uint32_t TimingDelay; void Delay(__IO uint32_t nTime) { TimingDelay = nTime; while(TimingDelay!=0); } void RCC_Configuration(void) { ErrorStatus HSEStartUpStatus; RCC_DeInit(); RCC_HCLKConfig(RCC_HSE_ON); if(RCC_WaitForHSEStartUp()==SUCCESS) { RCC_HCLKConfig(RCC_SYSCLK_Div1); RCC_PCLK1Config(RCC_HCLK_Div2); RCC_PCLK2Config(RCC_HCLK_Div1); FLASH_SetLatency(FLASH_Latency_2); FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9); RCC_PLLCmd(ENABLE); while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET); RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); while(RCC_GetSYSCLKSource()!=0x08); } RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE); } int main(void) { RCC_Configuration(); GPIO_Configuration(); SysTick_Configuration(); while (1) { GPIO_SetBits(GPIOF,GPIO_Pin_6); Delay(1000); /*延时1s*/ GPIO_ResetBits(GPIOF,GPIO_Pin_6); Delay(1000); } } |
|
相关推荐
3个回答
|
|
看一下你使用的主频是多少 修改一下分频值就能得到1S了
|
|
|
|
用的HSE的8M晶振,SystemCoreClock=72000000 |
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
969 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
954 浏览 2 评论
2066 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1162 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1587 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 13:44 , Processed in 0.529353 second(s), Total 46, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号