STM32在系统时钟为72M下的几个延时函数

发布者:JoyfulJourney最新更新时间:2016-04-05 来源: eefocus关键字:STM32  系统时钟  延时函数 手机看文章 扫描二维码
随时随地手机看文章
//粗延时函数,微秒
  • void delay_nus(u16 time)
  • {    
  •    u16 i=0;  
  •    while(time--)
  •    {
  •       i=10;  //自己定义
  •       while(i--) ;    
  •    }
  • }
//毫秒级的延时
  • void delay_nms(u16 time)
  • {    
  •    u16 i=0;  
  •    while(time--)
  •    {
  •       i=12000;  //自己定义
  •       while(i--) ;    
  •    }
  • }
运用SysTick来实现准确定时:

 

 

  • SysTick_Config(SystemCoreClock / 10)   函数的形参就是systick重装定时器的值。
  • systick计数频率为每秒72000000次,所以7200000次就是1/10秒,也就是100ms。
  • SysTick是1个24bit递减计数器,通过对SysTick控制与状态寄存器的设置,可选择HCLK时钟(72M)或HCLK的8分频作为SysTick的时钟源。//V3.5默认为HCLK时钟
  • SysTick的重装寄存器决定了定时器频率。
  • 若SysTick的时钟源是72M,   SystemFrequency = 72000000Hz
  • 所以 SysTick_Config(SystemCoreClock / 1000); 就是1ms时基。

 

 

 
SysTick的初始化设置:
 void Init_SysTick(void)
 {
 if(SysTick_Config(SystemCoreClock 1000)) //注意:3.5库中 SystemFrequency 被 SystemCoreClock 取代。
 while(1);
 }
 

延时函数:
 __IO uint32_t TimingDelay;
 void delay_ms(__IO uint32_t nTime)
 {
 TimingDelay nTime;
 while(TimingDelay != 0);
 }
中断函数:
 extern __IO uint32_t TimingDelay;
 void SysTick_Handler(void)
 {
 if (TimingDelay != 0x00)
 { 
 TimingDelay--;
 }
 }
 

 
 delay_ms(1000); 
关键字:STM32  系统时钟  延时函数 引用地址:STM32在系统时钟为72M下的几个延时函数

上一篇:STM下纯软件实现精确定时
下一篇:关于STM32串口发送的奇怪问题

推荐阅读最新更新时间:2024-03-16 14:49

基于STM32设计的四轴飞行器飞控系统
引言 四轴飞行器是一种结构紧凑、飞行方式独特的垂直起降式飞行器,与普通的飞行器相比具有结构简单,故障率低和单位体积能够产生更大升力等优点,在军事和民用多个领域都有广阔的应用前景,非常适合在狭小空间内执行任务。因此四旋翼飞行器具有广阔的应用前景,吸引了众多科研人员,成为国内外新的研究热点。 本设计主要通过利用惯性测量单元(IMU)姿态获取技术、PID电机控制算法、2.4G无线遥控通信技术和高速空心杯直流电机驱动技术来实现简易的四轴方案。整个系统的设计包括飞控部分和遥控部分,飞控部分采用机架和控制核心部分一体设计增加系统稳定性,遥控部分采用模拟摇杆操作输入使操作体验极佳,两部分之间的通信采用2.4G无线模块保证数据稳定传输。飞
[单片机]
基于<font color='red'>STM32</font>设计的四轴飞行器飞控<font color='red'>系统</font>
STM32的GPIO输出编程实例之点亮三色LED
一、概述: 1、发光二极管简介 发光二极管是半导体二极管的一种,可以把电能转化为光能,常简写为LED。常用的是发红光、绿光或黄光的二极管。发光二极管的反向击穿电压约为5V。它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过管子的电流。限流电阻R可用下式计算: R = (E - UF)/IF 式中E为电源电压,UF为LED的正向压降,IF为LED的一般工作电流。LED广泛应用于各种电子电路、家电、仪表等设备中,做电源或电平指示。 2、STM32 GPIO简介 GPIO可以配置成以下8种工作模式: 浮空输入:此端口在默认情况下什么都不接,呈高阻态,这种设置在数据传输时用的比较多。 上拉输入:上拉输入模式与浮空输入模式相
[单片机]
<font color='red'>STM32</font>的GPIO输出编程实例之点亮三色LED
STM32通用定时器的几个重要寄存器
1..自动装载寄存器部分实际上包含两个寄存器: 自动装载寄存器缓冲寄存器 和 自动装载寄存器影子寄存器 其中自动装载寄存器缓冲寄存器可以有ARPE位控制是否起作用: ARPE = 0 写 自动装载寄存器 时,数据直接写入到 自动装载寄存器缓冲寄存器 的同时,立即更新到 自动装载寄存器影子寄存器 ARPE = 1 写 自动装载寄存器 时,数据直接写入到 自动装载寄存器缓冲寄存器 的同时,只有更新事件发生的时候,才更新到 自动装载寄存器影子寄存器 2.预分频器控制寄存器也分为两部分: 预分频器缓冲寄存器 和 预分频器影子寄存器 当更新事件发生的时候, 预分频器缓冲寄存器 的内容更新到 预分频器影子寄存器中 3.UDIS位作用:
[单片机]
如何设计在stm32中的复位电路?
说到复位,我们都不会陌生,系统基本都有一个复位按键。复位的种类有很多:上电复位、掉电复位、复位引脚复位、看门狗复位、软件复位等。本文探讨的就是在stm32中复位电路如何设计。 STM32介绍 STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCortex®-M0,M0+,M3, M4和M7内核在STM32F105和STM32F107互连型系列微控制器之前,意法半导体已经推出STM32基本型系列、增强型系列、USB基本型系列、互补型系列;新系列产品沿用增强型系列的72MHz处理频率。内存包括64KB到256KB闪存和 20KB到64KB嵌入式SRAM。 新系列采用LQFP64、LQFP100和LFBGA
[单片机]
如何设计在<font color='red'>stm32</font>中的复位电路?
STM32】通用定时器的基本原理(实例:定时器中断)
STM32F1xx官方资料: 《STM32中文参考手册V10》-第14章通用定时器 STM32的定时器: STM32F103ZET6一共有8个定时器,其中分别为: 高级定时器(TIM1、TIM8);通用定时器(TIM2、TIM3、TIM4、TIM5);基本定时器(TIM6、TIM7)。 STM32的通用定时器 通用定时器功能特点描述 STM32的通用定时器是由一个可编程预分频器(PSC)驱动的16位自动重装载计数器(CNT)构成,可用于测量输入脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM)等。 STM3 的通用TIMx(TIM2、TIM3、TIM4 和 TIM5)定时器功能特点包括: 位于低速
[单片机]
【<font color='red'>STM32</font>】通用定时器的基本原理(实例:定时器中断)
基于STM32F103的水动力测控系统设计的解决方案
测控系统是水动力实验中的重要测试设备。在实验中有压力、拉力、加速度等物理量通过传感器转换成电压值,需要准确记录。虽然实验模型有很多种,但是共用传感器及测控系统,因此对测控系统的通用性和用户界面友好性提出了要求。本文采用嵌入式架构设计了测控系统。 本文设计的系统硬件基于STM32芯片,具有很强的扩展能力,易于移植,其外设单元资源丰富,能够达到系统要求的精度和范围。 1、硬件架构 采用嵌入式架构(见图1)的优点是通用性强,便于在多平台移植;主控芯片外围电路模块丰富,包括ADC、DA、CAN和SDIO等接口,独立完成对多种类型设备的测量、控制。芯片的主频高,运算能力也很强,适合嵌入复杂的算法。完全适合作为测控系统,具备系统升级和扩展
[测试测量]
基于STM32、FreeRTOS实现硬件看门狗+软件看门狗监测多任务的思路
我们都知道硬件看门狗的目的:是用来监测系统,防止系统死机,并在死机的情况下使其系统复位重启。 嵌入式专栏 1 在RTOS操作系统中,如果任务(线程)较多,出现高优先级任务长时间占用CPU资源,低优先级任务长时间得不到执行这种想象,那么我们的系统就是具有“Bug”的系统。 如上描述,假如我们的线程没有死机,只是长时间得不到执行。在这种异常情况下,我们又不希望系统复位,只希望执行特定代码,那我们该如何来避免这种问题呢? 关于看门狗硬件看门狗:利用一个 定时器 计数电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时“喂狗”。 因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。如果程序出现故障,不在定时周期内喂
[单片机]
STM32窗口看门狗详解
本文将介绍窗口看门狗,并通过按键模拟触发程序死机、进而触发提前唤醒中断、并复位程序。 ①窗口看门狗介绍 ②STM32CUBEMX配置工程文件 ③代码实现 ①窗口看门狗介绍 窗口看门狗用来监测由于不可预知的因素或者不可预知的逻辑条件导致程序脱离正常运行序列的软件故障。 窗口看门狗介绍之工作原理框图: 窗口看门狗介绍之配置寄存器: 预分频器用于将RCC传来的PCLK1时钟进行分频,配置寄存器中第7位第8位用来存放预分频器的预分频值,第0位至第6位用于存放窗口看门狗的窗口值,当计数器的值大于窗口值时喂狗会触发复位、即只有计数器的值在0x40与窗口值之间时喂狗不会触发程序复位;所以窗口值需要大于0x40、小于0x7f,否则窗口没有
[单片机]
<font color='red'>STM32</font>窗口看门狗详解
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved