STM32的精确延时
- /*----------------------------------------------------------
- 文件名:systick.c
- 文件描写叙述:sysTick 系统滴答时钟1us中断函数库。中断时间可自由配置
- 备注:程序默认使用72M时钟,无分频
- -----------------------------------------------------------------*/
- #include "delay.h"
- static __IO u32 TimingDelay;
- /*-----------------------------------------------------------------------
- 程序名称:systick Init
- 程序描写叙述:启动系统滴答定时器 systick
- 输入參数:无
- 返回參数:无
- 备注: 使用此功能之前须要调用此函数。初始化寄存器等參数
- ----------------------------------------------------------*/
- void SysTick_Init(void)
- {
- //SystemFrequency /1000 1ms中断一次
- //SystemFrequency /100000 10us中断一次
- //SystemFrequency /1000000 1us中断一次
- if(SysTick_Config(SystemCoreClock /1000000)) //1us
- {
- /*Caputure error*/
- while(1);
- }
- }
- /*---------------------------------------------
- 程序名称:Delay_us
- 程序描写叙述:延时nTime us
- 输入參数:nTime
- 返回參数:无
- 备注: 无
- -----------------------------------------------*/
- void Delay_us(__IO u32 nTime)
- {
- TimingDelay = nTime;
- while(TimingDelay != 0);
- }
- /*--------------------------------------------------
- 程序名称:TimingDelay_Decrement
- 程序描写叙述:数字递减到0
- 输入參数:无
- 返回參数:无
- 备注: 须要中断函数SysTick_Handle()中调用
- ---------------------------------------------------------*/
- void TimingDelay_Decrement(void)
- {
- if(TimingDelay != 0x00)
- {
- TimingDelay--;
- }
- }
- 在学习的时候发现,延时是错误的,由于这里的要是要依赖于系统的时钟所以在中断函数中要增加
- <pre name="code" class="cpp">SysTick_Handle()
- /**
- * @brief This function handles SysTick Handler.
- * @param None
- * @retval None
- */
- void SysTick_Handler(void)
- {
- <span style="white-space:pre"> </span>TimingDelay_Decrement();
- }
STM32的精确延时的更多相关文章
- 【转】STM32 不占用定时器(包括SysTick)实现精确延时(巧用DWT)
/** ****************************************************************** * file core_delay.c * author ...
- 一种Cortex-M内核中的精确延时方法
本文介绍一种Cortex-M内核中的精确延时方法 前言 为什么要学习这种延时的方法? 很多时候我们跑操作系统,就一般会占用一个硬件定时器--SysTick,而我们一般操作系统的时钟节拍一般是设置100 ...
- STC12C5A60S2 @ 22.0184Mhz 精确延时
#include "STC12.h" // STC12C5A60S2 @ 22.0184Mhz 精确延时 void delay_10us(unsigned char n) { un ...
- 对MSP430单片机__delay_cycles精确延时的说明及改正
在这里, 我来讨论一下关于MSP430单片机使用__delay_cycles延时的问题. IAR for MSP430编译器提供了一个编译器内联的精确延时函数(并非真正的函数)以提供用户精确延时使用, ...
- Keil C51程序设计中几种精确延时方法
1 使用定时器/计数器实现精确延时 单片机系统一般常选用11.059 2 MHz.12 MHz或6 MHz晶振.第一种更容易产生各种标准的波特率,后两种的一个机器周期分别为1 μs和2 μs,便于精确 ...
- [MSP430] 对MSP430单片机__delay_cycles精确延时的说明及改正
在这里, 我来讨论一下关于MSP430单片机使用__delay_cycles延时的问题. IAR for MSP430编译器提供了一个编译器内联的精确延时函数(并非真正的 函数)以提供用户精确延时使用 ...
- 关于51精确延时及keil仿真延时时间
转自:http://blog.sina.com.cn/s/blog_980e19e00101b5dh.html 有时候需要精确的延时,比如18B20温度传感器对时序要求非常严格,必须精确到微秒级别 一 ...
- 实现流水灯以间隔500ms的时间闪烁(系统定时器SysTick实现的精确延时)
/** ****************************************************************************** * @file main.c * ...
- 使用系统定时器SysTick实现精确延时微秒和毫秒函数
SysTick定时器简介 SysTick定时器是存在于系统内核的一个滴答定时器,只要是ARM Cortex-M0/M3/M4/M7内核的MCU都包含这个定时器,它是一个24位的递减定时器,当计数到 0 ...
随机推荐
- 记录一个scrapy的坑
在win10上用命令 pip install scrapy 安装scrapy的时候提示: Could not find a version that satisfies the requirement ...
- 【Mysql数据库】知识点总结
本文转载自:http://www.cnblogs.com/tonghun/p/7191131.html 一 数据库常用操作 mysql -u+username -p+password:登陆数据库管理系 ...
- 条款13:以对象管理资源(use objects to manage resources)
NOTE: 1.为防止资源泄漏,请使用RAII对象,它们在构造函数中获得资源并在析构函数中释放资源. 2.两个常被使用的RAII classes 分别是 trl::shared_ptr 和 auto_ ...
- 分享下自己的EmpireofCode进攻策略 https://empireofcode.com/ https://empireofcode.com/game/#
# 没什么用,该游戏的模块调用不友好,取数据难import queue from battle import commander # import math unit_client = command ...
- Crossed Ladders 求街道宽度 (二分法)
Description A narrow street is lined with tall buildings. An x foot long ladder is rested at the bas ...
- Github 多账号配置
1. 不同账户,生成不同密钥ssh-keygen -t rsa -f github1 -C "xxx@163.com"ssh-keygen -t rsa -f github2 -C ...
- luogu1494 [国家集训队]小Z的袜子
#include <algorithm> #include <iostream> #include <cstdio> #include <cmath> ...
- 在WinForm里嵌入WPF模拟公交运行状态
公司有个公交项目,模拟公交运行的时候使用的纯WinForm技术,5秒钟刷新一次,不仅看起来感觉很丑,而且性能上很有问题,听说一段时间后就会因为内存问题崩溃(估计是没释放非托管资源吧,不断重绘,非托管资 ...
- 大数据学习——关于hive中的各种join
准备数据 2,b 3,c 4,d 7,y 8,u 2,bb 3,cc 7,yy 9,pp 建表: create table a(id int,name string) row format delim ...
- 【收藏】实战Nginx与PHP(FastCGI)的安装、配置与优化
拜读南非蚂蚁大牛的文章真是有所收获 http://ixdba.blog.51cto.com/2895551/806622 一.什么是 FastCGI FastCGI是一个可伸缩地.高速地在HTTP s ...