STM8入门:C语言开发与时钟系统设置详解
需积分: 12 75 浏览量
更新于2024-07-25
收藏 941KB PDF 举报
本文档是一篇关于STM8系列单片机C语言入门的指南,作者分享了自己的学习经验和遇到的问题。在STM8的开发环境中,开发过程通常涉及创建一个新的工程,其中包括两个主要的C语言文件:`main.c`和`stm8_interrupt_vector.c`。`main.c`初始时包含一个空的`main()`函数,这是程序的入口点。
在进行STM8的开发时,作者首先强调了电源系统和复位系统的设置,这两个部分作为STM8工作基础至关重要。电源系统通常包括一个104电容连接到reset脚以实现复位功能。复位系统仅需简单的电路即可实现。
文章的核心内容聚焦于时钟系统,因为无论是8位还是32位单片机,时钟管理都是编程的基础。作者起初的代码尝试通过以下步骤设置外部时钟:
1. 开启外部时钟 (`CLK_ECKR |= 0X1`)
2. 等待外部时钟准备就绪 (`while (!(CLK_ECKR & 0X2))`)
3. 保持CPU无分频 (`CLK_CKDIVR &= 0XF8`)
4. 选择外部时钟 (`CLK_SWR = 0XB4`)
5. 启用外部时钟 (`CLK_SWCR |= 0X2`)
然而,实际调试过程中,代码并不能稳定切换时钟,经过深入阅读STM8的RM0016文档,发现必须等待`CLK_SWCR`标志位置位,于是调整了代码:
- 在启用外部时钟前,增加一个等待循环 (`while (!(CLK_SWCR & 0X8))`)
此外,作者还提到了STM8的三种时钟源:HSE(外部时钟)、HSI(内部16MHz时钟),以及它们在单片机启动时的默认状态。由于STM8启动时默认使用内部时钟,理解并正确配置时钟系统对于确保程序运行的稳定性至关重要。
总结来说,本文档介绍了STM8开发中C语言的基本结构,以及如何处理时钟系统,特别是当遇到实际问题时如何通过查阅文档来解决问题的方法。这对于初学者了解STM8编程和调试技巧非常有帮助。
2015-05-17 上传
2022-07-04 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2022-09-21 上传
cumtguojp
- 粉丝: 66
- 资源: 1
最新资源
- Credits-App:积分叠加
- meetup_map_oauth2:使用 OAuth2 通过 Meetup API 获取事件
- 行业分类-设备装置-同时向主叫用户和被叫用户播放多媒体信息的方法.zip
- react todo list and counter:精益应对构建Webapp待办事项列表和计数器应用程序-开源
- 数据库管理
- Manual-Gating
- 行业分类-设备装置-可翻转式台板和用于PCBA测试的机器人上下料系统.zip
- BeatDetectorForGames:用于视频游戏的 C++ 和 C# 节拍检测器。 可以接收歌曲并检测节拍发生的位置,例如在 Vib-Ribbon 等游戏中
- 医学图像分割经典深度学习网络Python代码实现.zip
- MLEM:MLEM库,用于扩展MonoGame
- terraform-aks-devops:使用AzureDevOps设置AKS群集的示例存储库
- 行业分类-设备装置-台式陶瓷三维喷印成形机.zip
- Catwalk:一种使客户能够搜索,浏览,添加到购物车和结帐项目的产品
- FastFileTransfer
- gulp-setup:gulp 的入门项目
- 行业分类-设备装置-可见光无源光充电标签与读写器装置.zip