STM8S 时钟配置源码程序

基于stm32控制六位数码管显示定时器时钟+proteus仿真(附源码) 此Proteus仿真使用的是stm32F103R6,74LS245模块,LCD1602,按键,这里主要介绍一下74LS245模块,74LS245是一种集成电路芯片,通常被称为“八位双向电平转换器”。它通常用于将信号从一个电平转换为另一个电平,或者在两个不同的系统之间进行数据传输。在数字系统中,它常被用来增强输入/输出(I/O)的驱动能力。这个模块有八个输入/输出引脚(A1-A8和B1-B8),B1-B8口它们可以在输入和输出模式之间切换。它还有两个方向控制引脚(DIR和DIR!),用来控制数据的流向。 阅读详情

型号:stm8s903k3

编译器:STVD4.3.5+cosmic 8k 5.4.1

其他:采用操作寄存器,不使用库

-----------------

时钟是单片机的灵魂,所有的东西都和时钟有关。相比AVR反人类的熔丝位设置时钟/振荡源。stm只要操作寄存器就可以了。最关键的是!!就算设置错了也不!会!锁!死!

----------------

stm内部时钟示意图。



由图就可知,系统时钟可以由外部HSE(high speed external)或内部高速时钟HSI(high speed internal)或内部低速时钟LSI(low speed internal)提供。这里以内部高速时钟举例,内部高速时钟HSI经过HSIDIV分频,得到Fmaster时钟,这个请注意,顾名思义,这个时钟是主要时钟,芯片内的其他所有时钟,都是通过这个时钟分频而来(一次分配),并且他还控制这这些外设时钟的门(开启或者关闭)。

Fmaster是主干,内部/外部时钟是根,CPU或者外设时钟是枝,根和枝有很多,但是主干就一个。

 

因此,配置时钟的思路就是。

首先确定好Fmaster的值,默认是分频8,我们可以通过HSIDIV位来改变。

第二确定好CPU的频率,通过设置CPUDIV实现。

第三选择使能的外设时钟,在有功耗要求的情况下,关闭不使用的时钟可以降低功耗。默认全部开启。

第四其他设置,时钟切换啊SWIM啊时钟输出等等。下面源码没设置均默认。


下面是源码

 /************************************************************************/
/* 功能:时钟配置初始化
 * 形参:无
 * 返回:无
 * 修改:2014-11-14
 * 缘由:全局时钟初始化,主频,门控位              */ 
/************************************************************************/
void clk_init(void)
{

	/*对于内部高速时钟HSI[16MHz],其逻辑关系是HSI---[HSIDIV分频]---[时钟选择门]---
	* 主时钟Fmaster---{[CPUDIV分频]---Fcpu时钟;其他外设时钟}
	*/
	CLK_ICKR = 0x01;	//Internal clock control register。复位值,使能HSI时钟,快速唤醒禁止
	CLK_ECKR = 0x00;	//External clock control register。HSE禁止。
	CLK_SWR	 = 0xE1;	//Clock master switch register。选择HSI为主时钟。
	CLK_SWCR = 0x00;	//Clock switch control register。时钟切换,中文数据手册翻译似乎有误
	
        /*Clock divider register。分频Fmaster和Fcpu。
	* 默认是8和1,现在是2和1,因此Fmaster=8M,Fcpu=8M	*/
	CLK_CKDIVR = 0x08;
	CLK_PCKENR1 = 0xFF;	//Peripheral clock gating register 1。Fmaster与外设时钟连接
	CLK_PCKENR2 = 0x0;	//同上
	CLK_CSSR = 0x0;	        //Clock security system register。时钟安全检测关
	CLK_CCOR = 0x0;		//Configurable clock control register。时钟输出关闭
}

-------------------

更新,stm有个LSI校准的功能,具体可以看芯片手册。而且这个校准功能,库函数已经写好了。但是使用的时候要注意两点。

一,库函数的LSI校准功能是使用AWU和TIM3的,因此在上面的配置中CLK_PCKENR2里面应该配置为打开AWU外设,否则会死循环。

二,TIM3如果需要做其他功能的话,务必在LSI校准之后配置,即顺序时主时钟初始化----LSI校准----TIM3配置,否则会无法启动TIM3

三,以上的LSI校准程序来自最新的官方固件库。其实个人认为如果频率要求不严就不要配置了,比如蜂鸣器……

STM8S001J3开发避坑指南:从零开始用IAR EWSTM8点亮LED(附完整源码) 本文是一份针对STM8S001J3微控制器在IAR EWSTM8开发环境下的实战避坑指南。详细解析了从零搭建LED点灯工程时,在工程结构、芯片选型、头文件路径、源码适配及库文件裁剪等环节的常见编译陷阱与解决方案,帮助开发者高效驯服这颗8位MCU。 阅读详情

相关推荐

避坑指南:IAR for STM8 3.11.1 配置 STM8S003 模板工程时常见的5个编译错误

本文详细解析了使用IAR for STM8 3.11.1配置STM8S003模板工程时常见的5个编译错误,包括头文件路径设置、MCU型号宏定义、stm8s_conf.h文件处理、硬件驱动文件筛选及库源码解压失败等问题。通过实战经验分享,帮助开发者快速定位并解决这些棘手问题,提升开发效率。

weixin_33743880的博客 510

stm8s003_切换时钟流程分析、配置外部晶振(库函数调用)

疑问,如果外部晶振开启失败了,又关闭了旧的时钟,会不会不能往下运行?验证:把外部晶振取下,模拟开启失败的情况。不管是关闭旧时钟CLK_CURRENTCLOCKSTATE_DISABLE,还是不关闭旧时钟CLK_CURRENTCLOCKSTATE_ENABLE,程序都能继续往下执行,并且时钟频率为旧的时钟频率。注:如果在开启外部晶振前,把内部时钟的分频调成1(16MHz),那么外部晶振开启失败后时钟频率还是16MHz;设置这个用处就是,

人非生而知之者 2787

STM8S105微控制器完整源码与库文件实战包

STM8S105是一款基于STM8内核的中端8位微控制器,广泛应用于工业控制、消费电子和汽车电子等领域。其内核采用高效的RISC架构,具备32位宽的寄存器文件与高效的指令集,支持单时钟周期操作,显著提升了运算效率。在内存组织方面,STM8S105配备了最多64KB的Flash程序存储器与2KB的RAM数据存储器,支持ISP与IAP功能,便于现场升级与动态配置。其外设模块包括:GPIO、定时器、ADC、SPI、I2C、USART等,能够满足多种嵌入式应用场景的需求。

weixin_31974443的博客 739

STM8S之时钟设置

昨天被安排做别的工作,耽误一天,今天继续写,坚持学习。 1,STM8S的4种时钟源可用做主时钟: ● 1-24MHz高速外部晶体振荡器(HSE) ● 最大24MHz高速外部时钟信号(HSE user-ext) ● 16MHz高速内部RC振荡器(HSI) ● 128KHz低速内部RC(LSI) 各个时钟源可单独打开或关闭,从而优化功耗。 2,系统的启动 为使系统快速启动,复...

dijianfei2190的博客 1210

STM8S103微控制器开发实践例程源码

微控制器在嵌入式系统中发挥着核心作用,其中STM8S103系列以其出色的性能与极高的性价比受到广泛关注。本章将介绍STM8S103的基本信息,为理解后续章节内容奠定基础。STM8S103微控制器采用的是8位的STM8核心,是STMicroelectronics(意法半导体)推出的高性能、低功耗产品。适用于多种应用场合,如工业控制、消费电子、汽车电子等。该系列处理器通常集成了丰富的外设接口,如SPI、I2C、USART等,能够支持广泛的应用需求。

weixin_35752122的博客 670

STM8S903微控制器控制无刷直流电机无感驱动源码项目

STM8S903属于STMicroelectronics的STM8微控制器系列,该系列具备高性能、低功耗和丰富的片上资源特性。它内置了高性能的8位微处理器核心,以及足够的GPIO口、模拟外设、通信接口和定时器等资源,非常适合用于电机控制。

weixin_32098457的博客 694

关于STM8的时钟源配置

关于STM8的时钟源配置

armauk的专栏 6577

stm8s003与ds1307时钟芯片程序

stm8s003与ds1307时钟芯片程序,硬件IIC模式,连对SCL,SDA即可。

STM8 定时器TIM1 计时

ST公司的STM8单片机的TIM1定时器,是一个16位高级控制定时器,可用于实现基本的定时,PWM波的产生,这里主要分析下基本的计时功能。        我们先看ST提供的库函数中TIM1定时器的初始化函数       void TIM1_TimeBaseInit(uint16_t TIM1_Prescaler,                        TIM1_CounterMode

梦里水鬼 5779

基于STM8S003K3T6设计的8路继电器带LCD1602显示的控制板ALTIUM原理图+PCB+软件程序源码.zip

基于STM8S003K3T6设计的8路继电器带LCD1602显示的控制板ALTIUM原理图+PCB+软件程序源码,硬件采用2层板设计,大小为100*100mm,包括AD设计的完整原理图和PCB源文件,及软件控制程序源码。 硬件主要器件: Bell Electrical Bell LCD1602 LCD1602 LED1 LM2576 LM2576 Relay-JZC Single-Pole Single/Dual-Throw Relay Res1 Resistor STM8S003K3T6 Value line, 16 MHz STM8S 8-bit MCU, 8 Kbytes Flash, 128 bytes data EEPROM, 10-bit ADC, 3 timers, UART, SPI, I2C SW-PB Push Button

【Cadence】Virtuoso@LayoutXL 差分电路版图同步修改

对于差分电路,器件和部分走线通常是对称的,只需要画一半,另一半通过镜像操作完成。因此,需要对差分电路进行同步的修改,保证电路的差分对称性和正确的连接关系。然而,通常版图会经过多次修改,修改的部分可能在镜像的时候被遗漏。左边画了金属块,右边也出现了同步出现了金属块。进入group会有同步复制的提示。

乾巽的博客 3049

【IAR工程】STM8S208RB基于ST标准库蜂鸣器(BEEP)驱动

【IAR工程】STM8S208RB基于ST标准库蜂鸣器(BEEP)驱动

perseverance51博客 931

【dify】 dify环境变量配置说明

SMTP_SERVER、SMTP_PORT、SMTP_USERNAME、SMTP_PASSWORD、SMTP_USE_TLS、SMTP_OPPORTUNISTIC_TLS:当 MAIL_TYPE 为 smtp 时,SMTP服务器的相关配置。UPLOAD_IMAGE_FILE_SIZE_LIMIT、UPLOAD_VIDEO_FILE_SIZE_LIMIT、UPLOAD_AUDIO_FILE_SIZE_LIMIT:分别为上传图像、视频、音频文件的大小限制(MB)。

tonysh_zds的博客 7355

STM32L051xx的时钟配置

1、背景 最近,做移植,因此对目标平台做一些了解。 STM32L051C6T6资源为32K Flash;2K EEPROM;8K RAM;37 GPIOs;1ADC(10 Channels) 2、系统刚起来时的时钟配置 时钟配置是嵌入式程序中比较重要且基础的部分。 有四种不同的时钟源,可用于驱动系统时钟(SYSCLK)。 时钟源:HSI16、HSE、PLL、MSI AHB、APB1...

zhejfl的博客 3817

银河麒麟V10开机卡Logo?别慌,手把手教你进单用户模式修复(附详细命令)

本文详细解析银河麒麟V10操作系统启动时卡Logo的故障原因,并提供进入单用户模式的完整解决方案。通过GRUB引导菜单修改启动参数,执行文件系统检查、图形服务修复等关键命令,帮助用户快速恢复系统正常运行,适用于运维人员和普通用户应对紧急启动问题。

weixin_30522183的博客 392

混沌系统在图像加密中的应用(随机性测试之FIPS 140-2测试和SP800-22测试)

本节内容我们将学习混沌序列的随机性测试,那么前面讲了,混沌系统产生的随机序列,它的随机性到底好不好,除了看相图、分岔图、指数图以外,还有一个非常重要的指标,那就是FIPS 140-2测试和SP800-22测试。(1)保证密码学模块的安全性:密码学模块在加密和解密敏感信息时使用随机数生成器来增加对手动解密和猜测攻击的抵抗力。通过进行FIPS 140-2测试,可以验证密码学模块是否符合安全标准,确保其实施和设计的安全性,以有效地保护敏感信息。

weixin_42207434的博客 2085

stm8s 串口通讯源码程序(8位数据,奇校验,2个停止位)

串口初始化第一步,配置波特率,波特率是和时钟相关的,因此首先要配置时钟,时钟的配置参见上一篇博客。stm8s主时钟设置 如果在串口初始化中,如果串口时钟没有打开,请在主时钟配置中打开串口时钟。 配置波特率,stm8s的波特率,时钟,波特率寄存器值的计算相比avr和51又是巨大的进步,stm8s算波特率寄存器值只要Fmaster/波特率就可以了,不需要加加减减。 但是在写入寄存器时需要

零界 9891

将Keil中的变量数组导出

首先,写好导出数据的函数。

小柚子的博客 1952

基于DS3231时钟模块的stm32 程序,源码

本文介绍了DS3231高精度实时时钟芯片的结构原理及与STM32的通信实现。DS3231是一款集成温度补偿晶体振荡器的I2C实时时钟器件,具有电池备份功能,断电仍可保持精确计时。文章详细分析了芯片内部结构、寄存器功能及典型应用电路。在STM32通信部分,提供了完整的I2C驱动代码,包括GPIO配置、初始化函数、读写操作等实现细节。通过串口交互可设置时间,并实时读取显示时间、温度信息。该系统实现了DS3231与STM32的高效通信,为嵌入式系统提供了可靠的时间基准。

BackCatK Chen的博客 1万+

性能调优秘籍——让OpenClaw运行速度提升10倍(2026优化版)

OpenClaw性能优化核心摘要 本文详细介绍了提升OpenClaw系统性能的关键技术,包括: 使用性能分析器进行代码级性能诊断 内存优化与高效缓存策略 并发处理优化技术 数据库查询性能提升方法 重点内容包括: 全面的性能分析工具实现(计时、内存监控、错误跟踪) 自动生成性能报告和优化建议 操作耗时与内存占用分析算法 关键性能指标(平均耗时、内存增长)计算 通过系统性的性能分析优化,可使OpenClaw运行速度提升10倍以上。

博客 900

1、初探 Tiny Machine Learning

Tiny Machine Learning(TinyML)是机器学习与嵌入式系统的融合领域,致力于在资源受限的微控制器上运行AI模型。本文介绍了机器学习基础、TinyML的核心概念、应用领域(如智能家居、工业物联网、医疗保健)、面临的挑战(如资源限制、模型压缩、数据质量),以及从硬件准备到模型部署的实践步骤。通过利用训练与推理的资源不对称性,可在PC上训练模型并部署至低功耗设备进行实时推理,推动边缘智能的发展。

loss4bartender的博客 121

【单片机】[STM8] - 外部时钟 + 内部时钟 的切换

STM8S103K3: 外部时钟 + 内部时钟 的切换。 首先看一下 STM8S103K3 的时钟结构图,可以帮助你很好的理解。 这里有几个时钟,就是图中标识的时钟,需要弄清楚一下:fHSE: 外部高速晶振时钟,它是由外部晶振产生,大小由外部晶振大小决定,STM8S的外部晶振范围:1-24M,看图中的”HSE OSC 1-24M“。 fHSI:内部RC高速时钟,它是由内部的RC震荡电路产生的,

z21109的专栏 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

STM32标准库时钟配置源码分析

这里型号为STM32F40_41xxx,即F407。SystemInit()中完成,使能内部高速晶振HSI,复位CFGR清除所有时钟源配置,关闭HSE,CSS,PLL,复位PLL配置寄存器默认值,关闭HSE旁路模式,禁用所有RCC,接着进入SetSysClock();根据芯片型号宏定义,在system_stm32f4xx.c中可以看到,PLL_M分频系数为8,使VCO输入频率为1MHz,即8/1 = 1MHz。HSE_VALUE,使用外部高速晶振8MHz,其他格式,stm32f4xx.h中可进行配置。

BFwBQG919的博客 373

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【IAR工程】STM8S208RB基于ST标准库下GPIO点灯示例

【IAR工程】STM8S208RB基于ST标准库下GPIO点灯示例

perseverance51博客 1335
上一篇: ubuntu12.04 64位构建ARM交叉编译环境
下一篇: stm8s 串口通讯源码程序(8位数据,奇校验,2个停止位)
ZeroSkyrim
博客等级 码龄16年 34粉丝 10原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值