STM32 systick 定时 时间计算

发布者:快乐舞步最新更新时间:2018-07-17 来源: eefocus关键字:STM32  systick  定时  时间计算 手机看文章 扫描二维码
随时随地手机看文章

系统嘀嗒(SysTick)校准值寄存器

1.(SysTick) 系统嘀嗒时钟是由HCLK 分频 出来的。HCLK=SYSCLK=72MHz
/* Select HCLK/8 as SysTick clock source */
  SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
当系统嘀嗒时钟设定为9 兆赫
或是:
 SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
当系统嘀嗒时钟设定为72 兆赫

2.系统嘀嗒校准值固定到9000,当系统嘀嗒时钟设定为9 兆赫,产生1ms 时基。
 /* SysTick interrupt each 9ms with counter clock equal to 1MHz */
  SysTick_SetReload(9000);
该参数取值必须在1和0x00FFFFFF之间

3.
使能一下:
 /* Enable the SysTick Counter */
  SysTick_CounterCmd(SysTick_Counter_Enable);

  /* Enable the SysTick Interrupt */
  SysTick_ITConfig(ENABLE); 
这还有另外一种设置方法:
经试验验证可行:

//NVIC_InitTypeDef NVIC_InitStructure;

  /* Configure HCLK clock as SysTick clock source */
  SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);

 /* Configure the SysTick handler priority */
  NVIC_SystemHandlerPriorityConfig(SystemHandler_SysTick, 2, 0);
  /* Configure one bit for preemption priority */
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

  /* SysTick interrupt each 100 Hz with HCLK equal to 72MHz 每1ms发生一次

SysTick中断 */
  SysTick_SetReload(72000);

  /* Enable the SysTick Interrupt */
  SysTick_ITConfig(ENABLE);

  /* Enable the SysTick Counter */
  SysTick_CounterCmd(SysTick_Counter_Enable);


关键字:STM32  systick  定时  时间计算 引用地址:STM32 systick 定时 时间计算

上一篇:STM32 Systick定时器在实现1us延时的问题与解决
下一篇:使用STM32的systick定时器中断实现RTC工作过程出错

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

STM32获取DHT11温湿度(单总线通信实验笔记)
笔记: DHT11是一款湿温度一体化的数字传感器。该传感器包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。通过单片机等微处理器简单的电路连接就能够实时的采集本地湿度和温度。DHT11与单片机之间能采用简单的单总线进行通信,仅仅需要一个1/0口。传感器内部湿度和温度数据40Bit的数据一次性传给单片机,数据采用校验和方式进行校验,有效的保证数据传输的准确性。DHT11功耗很低, 5V电源电压下,工作平均最大电流0.5mA DHT11数字湿温度传感器采用单总线数据格式。即,单个数据引脚端口完成输入输出双向传输。其数据包由SByte (40Bit)组成。数据分小数部分和整数部分,一次完整的数据传输为4
[单片机]
<font color='red'>STM32</font>获取DHT11温湿度(单总线通信实验笔记)
STM32代码存储位置与MCUISP下载注意事项
最近做一个项目,在stm32内部一部分用来存储自己的代码,开辟出一段空间来用来存储FPGA代码。每次开机实现stm32往FPGA写入代码的功能。 向stm32某段空间写入代码的方法: (1)ST_LINK Utility软件 通过JTAG,连接后。载入FPGA的bin文件,改写Start address就可以将代码写入固定的区域。 当然可以用ST-LINK写入任意代码。 (2)用STMFlashDemo软件。 这个官方的串口下载软件,通过系统存储器进行下载。在之前的日志中提到过,不详说。 利用MCUISP下载的时候,会擦出整个芯片。 所以如果将一部分内容存到FLASH中比如(0x0807000~0x0807100),再
[单片机]
<font color='red'>STM32</font>代码存储位置与MCUISP下载注意事项
STM32内部硬核的认识
  STM32内部含有硬核,对于一些协议(例如:UART,SPI,IIC,CRC等)我们只要调用硬核就可以了,同时我们也可以自己写通信协议。   这些硬核最终肯定是要有引脚输出的,这就是为什么STM32的引脚有复用功能的原因。   以SPI通信协议硬核为例,其硬核连接的引脚是PA4,PA5,PA6,PA7,那么我们如果使用内部硬核就必须使用这几个引脚作为通信引脚   也可以自己编写SPI通信协议,此时的引脚就可以随意定义了。   通常一个引脚有好几种复用功能,在使用硬核时需要我们设置好引脚的寄存器,同时又不影响寄存器其他的状态。
[单片机]
STM32的GPIO介绍及电路图讲解
STM32的GPIO介绍 STM32引脚说明 GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 STM32F103ZET6芯片为144脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,同时每组GPIO口组有16个GPIO口。通常简略称为PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x为0-15。 STM32的大部分引脚除了当GPIO使用之外,还可以复用位外设功能引脚(比如串口),这部分在【STM32】STM32端口复
[单片机]
<font color='red'>STM32</font>的GPIO介绍及电路图讲解
STM32 PA15 设置成下拉输入却总是高电平
原因:STM32上电时默认打开JTAG调试功能。 解决办法: 打开复用时钟,禁止JTAG功能。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); 改变指定管脚的映射完全禁用(JTAG+SW-DP) GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);改变指定管脚的映射,JTAG-DP 禁用 + SW-DP 使能 这之后PA15就是普通IO口了。
[单片机]
基于STM32+RC522设计的门禁系统
一、项目背景 门禁系统是现代社会中非常重要的安全控制系统之一,其功能是在保障建筑物安全的同时,为合法用户提供便利。当前设计一种基于STM32+RC522的门禁系统设计方案,通过RFID-RC522模块实现了对用户卡的注册、识别及身份验证,通过控制SG90舵机实现门锁的开关,具有较高的安全性和可靠性。实验结果表明,该门禁系统可以有效地保障建筑物的安全性。 门禁系统广泛应用于各种建筑物、企事业单位,用于管理人员的进出、控制人员活动范围、实现安全监控等功能。传统的门禁系统采用密码输入或刷卡的方式进行身份验证,但存在易被破解的风险。基于RFID的门禁系统已经成为一种相对先进的安全控制方案。 本次设计的STM32+RC522门
[单片机]
基于STM32+RC522设计的门禁系统
基础定时器实验
7.1 STM32定时器概述 STM32内部共有8个定时器,其中Timer1和Timer8属于高级定时器,Timer2~Timer5属于通用定时器,8个定时器的资源独立,互不影响。 STM32的通用定时器是一个通过可编程预分频器(PSC)驱动的16位自动装载计数器(CNT)构成。STM32的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM)等。使用定时器预分频器和RCC时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。STM32的每个通用定时器都是完全独立的,没有互相共享的任何资源。 通用定时器的内部结构如下图所示。 7.2 相关 寄存器 要使用通用定时器
[单片机]
基础<font color='red'>定时</font>器实验
STM32 下载程序时,往flash固定位置写数据配置
1.就像参数定义时使用下面语句 const unsigned char Flash_user_data __attribute__((at(0X08080000))) = { 0x01,0x02,0x03,0x04, 0x01,0x01,0x03,0x03, 0x04,0x04,0x04,0x04, 0x05,0x05,0x01,0x04 }; 2.写入以后读取 int flash_addr; //存取地址的时候使用 unsigned char flash_data_char; //字节形式读取一个字节 unsigned int flash_data_int; //in
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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