完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
void RCC_Configuration(void)
{ ErrorStatus HSEStartUpStatus;//等待时钟稳定 RCC_DeInit(); //RCC 系统复位 RCC_HSEConfig(RCC_HSE_ON); //开启HSE HSEStartUpStatus = RCC_WaitForHSEStartUp(); //等待HSE准备好 if(HSEStartUpStatus == SUCCESS) { FLASH_SetLatency(FLASH_Latency_2); //Set 2 Latency cycles FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //Enable Prefetch Buffer RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_7); //PLLCLK = 8MHz * 7 = 56 MHz RCC_PLLCmd(ENABLE); //Enable PLL while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); //Wait till PLL is ready RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //Select PLL as system clock source RCC_HCLKConfig(RCC_SYSCLK_Div1); //AHB clock = SYSCLK RCC_PCLK2Config(RCC_HCLK_Div1); //APB2 clock = HCLK RCC_PCLK1Config(RCC_HCLK_Div2); //APB1 clock = HCLK/2 while(RCC_GetSYSCLKSource() != 0x08); //Wait till PLL is used as system clock source RCC_ADCCLKConfig(RCC_PCLK2_Div6); //72M/6=12,ADC最大时间不能超过14M RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO, ENABLE ); //使能ADC1通道时钟,各个管脚时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);// Enable USART1 clocks RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);// Enable USART1 clocks RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); // Enable TIM clocks RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 | RCC_APB1Periph_TIM3, ENABLE); // Enable TIM clocks } } void NVIC_Configuration(void) { /* Enable the USART1 Interrupt */ NVIC_InitTypeDef NVIC_InitStructure; #ifdef VECT_TAB_RAM /* Set the Vector Table base location at 0x20000000 */ NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); #else /* VECT_TAB_FLASH */ /* Set the Vector Table base location at 0x08000000 */ NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); #endif NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQChannel; //使能TIM3总中断 比较输出 具有最高的优先级 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); void TIM_Configuration(void) { /************************************** 定时器3,1ms基本时间单位,系统时间 ***************************************/ TIM_TimeBaseInitTypeDef TIM_BaseInitStructure; TIM_BaseInitStructure.TIM_Period = 999; //设置自动重装载值 TIM_BaseInitStructure.TIM_Prescaler = 55; //暂不分频,下面再分频 TIM_BaseInitStructure.TIM_ClockDivision = 0; //时钟分割,无视之 TIM_BaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上计数模式 TIM_TimeBaseInit(TIM3, &TIM_BaseInitStructure); TIM_ITConfig(TIM3,TIM_IT_Update, ENABLE); TIM_Cmd(TIM3, ENABLE); } void main(void) { while(1) } |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2183 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2011 浏览 3 评论
4612 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2154 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2687 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 08:01 , Processed in 0.485911 second(s), Total 71, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号