基于uVision的STM32F103C8编程第三弹

本文介绍了如何在uVision环境中使用STM32F103C8进行系统时钟配置,通过SYSTICK定时器实现不同时间间隔的中断,并提供了系统时钟的详细解释和代码实现。同时,讨论了LED灯开关模拟,强调了防止抖动的关键点,帮助读者理解和应用。

以下是我学习基于uVision中的STM32F103C8编程的一点感悟和指导,分享出来,希望对大家有所帮助。如果有错误的地方可以留言指出来,我一定耐心听取。相信大家只要付出努力,就一定学有所成!

目录

1.系统时钟

2.led灯开关模拟

                               言归正传了呦

1.系统时钟

1.1 首先介绍一下STM32的系统时钟吧。名为SYSTICK,是一个24位降序、零约束、写清除的计数器递减计数器。Systick设定初值并使能后,每经过一个时钟周期,计数器减一,计数到0时,Systick计数器自动重载初值并继续计数,同时内部的COUNTFLAG标志会置位,触发中断(如果中断使能)。而外部晶振为8Mhz,9倍频,系统时钟为72Mhz,若Systick的频率为9Mhz(HCLK/8),在这个条件下

  1. 把Systick校验值设置成9,将Systick时钟设置为八分频,就能产生1us的时间基值,即产生1us中断。
  2. 把Systick校验值设置成9000,将Systick时钟设置为八分频,就能产生1ms的时间基值,即产生1ms中断。
  3. 把Systick校验值设置成9000000,将Systick时钟设置为八分频,就能产生1s的时间基值,即产生1s中断。

¥¥¥¥¥¥重要提示,由于系统时钟只有24位可以显示数字,所以SysTick校验值最大为2^24-1,差不多17600000,所以我们不能设置超过这个值,否则计时器会失效。比如说以s为单位,只能传1,不能传2以上,但是可以多次执行delay_s()这个函数哦。

1.2 接下来讲解具体实现过程。首先是建立一个头文件和一个源文件,来练习之前的知识哦。
1.2.1 在头文件中,我以clock.h命名

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值