[ufun学习] [忙里偷闲学习ufun_7]时钟配置,LED3灯闪烁

boming   2016-8-6 21:27 楼主
本例程直接用官方库的模版生成,个人感觉官方写的很不错。
由于开发板差异,需要修改一些地方‘

stm32f10x.h
晶振配置要修改,我们是12M
#if !defined  HSE_VALUE
#ifdef STM32F10X_CL   
  #define HSE_VALUE    ((uint32_t)12000000) /*!< Value of the External oscillator in Hz */
#else
  #define HSE_VALUE    ((uint32_t)12000000) /*!< Value of the External oscillator in Hz */
#endif /* STM32F10X_CL */
#endif /* HSE_VALUE */


system_stm32f10x.c//选择主时钟频率,不需要的注释掉
#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
/* #define SYSCLK_FREQ_HSE    HSE_VALUE */
#define SYSCLK_FREQ_24MHz  24000000
#else
//#define SYSCLK_FREQ_HSE    HSE_VALUE //晶振
/* #define SYSCLK_FREQ_24MHz  24000000 */内部RC
/* #define SYSCLK_FREQ_36MHz  36000000 */
/* #define SYSCLK_FREQ_48MHz  48000000 */
/* #define SYSCLK_FREQ_56MHz  56000000 */
#define SYSCLK_FREQ_72MHz  72000000
#endif


在主函数中调用它就OK
void SystemInit (void);
想调整频率,调用它
void SystemCoreClockUpdate (void);

主函数
int main(void)
{
//        RCC_Config();                // 时钟初始化配置       
        SystemInit();
        /* LED 端口初始化 */
        LED_GPIO_Config();
        while(1)
        {
                LED3(ON);
                Delay(900000);
                LED3(OFF);
                Delay(900000);
        }
}

LED3接线,从原理图中能发现,让要PA3引脚输出低电平LED就亮,高电平来。
1.jpg
void LED_GPIO_Config(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;       
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;      
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

        GPIO_SetBits(GPIOA, GPIO_Pin_3);         // turn off all led
}


LED.rar (241.72 KB)
(下载次数: 4, 2016-8-6 21:10 上传)


回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复