STM32--系统时钟定时器(精确定时程序)
来源:互联网 发布:db2 sql 修改字段长度 编辑:程序博客网 时间:2024/04/27 20:56
一、 本课内容概述
这一课的主要内容是STM32系统时钟定时器systick的配置以及如何产生精确延时。
通常实现Delay(N)函数的方法为:
for(i = 0; i <= x; i ++);
x --- 对应于 对应于N 毫秒的循环值
对于STM32系列微处理器来说,执行一条指令只有几十个ns,进行for循环时,要实现N毫秒的x值非常大,而且由于系统频率的宽广,很难计算出延时N毫 秒的精确值。针对STM32微处理器,需要重新设计一个新的方法去实现该功能,以实现在程序中使用Delay(N)。
对于STM32系列微处理器来说,执行一条指令只有几十个ns,进行for循环时,要实现N毫秒的x值非常大,而且由于系统频率的宽广,很难计算出延时N毫 秒的精确值。针对STM32微处理器,需要重新设计一个新的方法去实现该功能,以实现在程序中使用Delay(N)。
注: 全局变量TimingDelay 必须定义为volatile
二、 SysTick的配置使用方法
外部晶振为8MHz,9倍频,系统时钟为72MHz,SysTick的最高频率为9MHz(最大为HCLK/8),在这个条件下,把SysTick 效验值设置成9,将SysTick 时钟设置为9MHz, 就能够产生1us的时间基值,即SysTick产生1us的中断。
使用ST的函数库使用systick的方法
1、调用SysTick_CounterCmd() 失能SysTick计数器
2、调用SysTick_ITConfig () 失能SysTick中断
3、调用SysTick_CLKSourceConfig() 设置SysTick时钟源。
4、调用SysTick_SetReload() 设置SysTick重装载值。
5、调用SysTick_ITConfig () 使能SysTick中断
6、调用SysTick_CounterCmd() 开启SysTick计数器
7、去掉stem32f10x_conf.c文件里面关于SysTick的注释,包含编译相关文件
8、在FWLIB里面加入stm32f10x_systick.c
9、修改工程设置,把中断向量表指向FLASH空间:project-option-C/C++ Complier-Processor-Defined symbols改为VECT_TAB_FLASH
三、 相关程序
至此,全部的修改与配置结束,enjoy it。
- STM32--系统时钟定时器(精确定时程序)
- STM32学习笔记(3):系统时钟和SysTick定时器
- STM32学习笔记(3):系统时钟和SysTick定时器
- STM32学习笔记(3):系统时钟和SysTick定时器
- STM32学习笔记(3):系统时钟和SysTick定时器
- STM32之系统时钟基定时器
- STM32定时器时钟配置
- STM32定时器的时钟源
- stm32定时器时钟源问题
- STM32学习笔记(一)时钟和定时器
- STM32学习笔记(一)----系统时钟
- (六)STM32的时钟系统
- STM32系统时钟
- stm32的时钟系统
- STM32之系统时钟
- STM32系统时钟
- STM32之系统时钟
- STM32 系统时钟设置
- 项目中的一些想法
- oracle数据库字符集和汉字关系
- 若干经典的字符串哈希函数
- 应对.NET中绘制闪烁的几种解决方法
- WaitForMultipleObjects
- STM32--系统时钟定时器(精确定时程序)
- 查看Linux下端口被哪个进程占用
- [Tekkaman Ninja]在U-boot下实现自动识别启动Flash的原理(针对S3C24x0)
- RecvBuffer()
- 浅谈自底向上的Shell脚本编程及效率优化
- A return to Good Code
- MS SQL 数据库同步技术
- cdecl、stdcall、fastcall、declspec 的用法和区别
- SQL之去除重复列(distinct )