STM8S时钟配置CLK_HSIPrescalerConfig与CLK_SYSCLKConfig区别

发布者:满足的36号最新更新时间:2019-12-26 来源: eefocus关键字:STM8S  时钟配置  CLK 手机看文章 扫描二维码
随时随地手机看文章

//CLK_SYSCLKConfig通过CLK_Prescaler值的最高位来区分是配置HSI分频,还是CPU分频的。这个函数有两个功能。


//而CLK_HSIPrescalerConfig是直接配置HSI分频的,CPU分频配置成1


//配置内部时钟,直接调用 CLK_HSIPrescalerConfig(CLK_Prescaler_TypeDef HSIPrescaler); 一个函数即可


/* Clock divider to HSI/1 */

CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);  // 只配置HSI分频率,CPU分频率1 

 

/* Configure the Fcpu to DIV1 */

CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);     // 配置CPU分频

 

/* Configure the HSI prescaler to the optimal value */

CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1);     // 配置HSI分频

关键字:STM8S  时钟配置  CLK 引用地址:STM8S时钟配置CLK_HSIPrescalerConfig与CLK_SYSCLKConfig区别

上一篇:stm8s的内部时钟切换
下一篇:stm8s开发(四) CLOCK的使用:时钟控制

推荐阅读最新更新时间:2024-11-17 15:13

STM8S awu及看门狗IWDG WWDG应用
AWU的应用(用库函数完成的) //切记要开启中断 且在中断函数中 AWU_GetFlagStatus(); 来清除中断 void AWU_SET(void) { CLK_PeripheralClockConfig(CLK_PERIPHERAL_AWU, ENABLE); AWU_Init(AWU_TIMEBASE_12S); } #ifdef _COSMIC_ @far @interrupt void AWU_IRQHandler(void) #else void AWU_IRQHandler(void) interrupt 1 #endif { AWU_GetFlagStatus(); } IW
[单片机]
STM8S系统时钟应用(IAR)
STM8上电运行时默认使用内部16M的RC振荡器经8分频后的2M时钟频率作为系统时钟。程序开始运行后可以通过设置相关寄存器来修改主时钟源,可以选择外部晶振作为主时钟源和CPU时钟分频。那么这里就选择比较简单的操作,修改内部RC时钟预分频器获得8M系统时钟。 增加内部RC时钟预分频后的代码如下: #i nclude iostm8s207sb.h #define LED1_FLASH PD_ODR_ODR3 = !PD_ODR_ODR3 // LED闪灯指示 void delay(unsigned int count) { while(count--); } void CLK_init(void) { CLK_C
[单片机]
STM8S学习GPIO操作
STM8S的GPIO主要功能: ● 端口的各个位可以被单独配置 ● 可选择的输入模式:浮动输入和带上拉输入 ● 可选择的输出模式:推挽式输出和开漏输出 ● 数据输入和输出采用独立的寄存器 ● 外部中断可以单独使能和关闭 ● 输出摆率控制用以减少EMC噪声 ● 片上外设的I/O功能复用 ● 当作为模拟输入时可以关闭输入施密特触发器来降低功耗 ● 在数据输出锁存时支持读-修改-写 ● 输入兼容 5V电压 ● I/O口工作电压范围为1.6 V 到V DDIOmax 每个端口都分配有一个输出数据寄存器,一个输入引脚寄存器,一个数据方向寄存器,一个选择寄存器,和一个配置寄存器。一个I/O口工作在输入还是输出是取决于该口的数据方向寄存器的状态
[单片机]
<font color='red'>STM8S</font>学习GPIO操作
stm32变更外部晶振时钟配置
学习野火的固件库UART1串口案例时,用的是SIM9008模块应用板上的STM32103F103RB芯片,使用的外部晶振是12M。 串口读取的是乱码 默认的外部晶振是8M 由于stm32的库默认是外部晶振8M的情况下实现的,所以配置串口波特率的时候也是按8M,包括主频。 如果采用外部晶振8M或12M,配置时钟为72MHZ 。 1)在system32_stm32f10x.c文件中的void SetSysClockTo72(void)里这样改: 8M: RCC- CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);//8*9=72 12M: RCC- CFGR |=
[单片机]
STM8S延时函数
/* MAIN.C file * * Copyright (c) 2002-2005 STMicroelectronics */ //延时函数 #include stm8s103f3p.h void delay_40us(void); void delay_1ms(void); void delay_ms(int); void delay_1s(void); void delay_s(int); main() { PD_DDR=0x0f; PD_CR1=0x0f; PD_CR2=0x00; PD_ODR=0x00; while (1) { PD_ODR^=0x0f; delay_s(50); }
[单片机]
STM8S】 窗口看门狗
.h文件如下: #ifndef __WWDG_H #define __WWDG_H #include stm8s.h void Delay(); void WWDG_Configuration(void) ; void Refresh_WWDG_Window(void); #endif .c文件如下: #include wwdg.h #include stm8s_wwdg.h #define CounterInit 0x7f #define window 0x77 void Delay() //延迟函数 { int i,j; for(i=0;i 100;i++) {
[单片机]
stm8s 定时器2测量脉冲宽度(单位 us)
void Init_Timer2(void) { GPIO_Init(GPIOA, GPIO_PIN_3, GPIO_MODE_IN_PU_NO_IT);//输入 无中断 TIM2_TimeBaseInit(TIM2_PRESCALER_16,65536-1); //16分频, 65ms 溢出 TIM2_Cmd(ENABLE); } uint16_t TIM2_GetCapture(void) { /* Get the Capture Register value */ uint16_t tmpccr = 0; uint8_t tmpccrl=0, tmpccrh=0; tmpccrh = TIM2- C
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved