首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

STM32和HAL函数GetTick()

STM32是一款由STMicroelectronics开发的32位ARM Cortex-M系列微控制器。它具有低功耗、高性能和丰富的外设集成等特点,广泛应用于嵌入式系统开发领域。

HAL函数是STM32Cube软件包中的硬件抽象层(Hardware Abstraction Layer)函数,它提供了一组高级API,用于简化STM32微控制器的编程。HAL函数封装了底层寄存器操作,使开发人员能够更方便地使用STM32的功能。

GetTick()是HAL函数中的一个函数,用于获取系统滴答定时器的当前计数值。滴答定时器是STM32微控制器上的一个硬件定时器,它以固定的时间间隔递增计数器的值。通过调用GetTick()函数,开发人员可以获取当前系统的运行时间,通常以毫秒为单位。

使用GetTick()函数可以实现一些时间相关的功能,例如延时、定时器、任务调度等。通过获取系统的运行时间,可以实现精确的时间控制和事件触发。

在腾讯云的云计算服务中,与STM32和HAL函数相关的产品和服务有:

  1. 云服务器(ECS):提供可扩展的计算能力,可用于部署STM32开发环境和应用程序。
  2. 云数据库MySQL版(CDB):提供高性能、可靠的关系型数据库服务,可用于存储STM32应用程序的数据。
  3. 云监控(Cloud Monitor):提供实时的监控和告警功能,可用于监测STM32应用程序的运行状态和性能指标。
  4. 云存储(COS):提供安全、可靠的对象存储服务,可用于存储STM32应用程序的文件和数据。
  5. 人工智能服务(AI):提供丰富的人工智能能力,例如图像识别、语音识别等,可用于与STM32应用程序进行集成。

以上是腾讯云提供的一些与STM32和HAL函数相关的产品和服务,您可以根据具体需求选择适合的产品。更多详细信息和产品介绍,请访问腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Cubemx与HAL库系列教程|系统时钟配置详解及源码分析

STM32时钟系统简介 STM32种类繁多,时钟系统也不尽相同,但基本的还是大差不差,今日小飞哥就F1系列的MCU简单聊一聊STM32的时钟系统 1、时钟种类介绍: 先来看一看时钟树图,包含了整个系统的始终来源及各个外设的始终来源...LSI时钟频率大约40kHz(在30kHz60kHz之间)。 以上介绍来自STM32手册,总共分为5大时钟源。...在HAL_RCC_OscConfig,函数中对HSE的配置如下,贴出一部分代码,其他时钟源配置类似,贴了一些中文注释: /* Check the parameters */ assert_param...return HAL_TIMEOUT; } } } 关于时钟的配置设计的寄存器是非常多的,小飞哥刚开始学习的时候,有寄存器版本函数版本,当时一看寄存器真精简啊...,后来发现库函数用着好简单...后来就放弃了寄存器版本...

2.4K20
  • stm32开发教程_单片机STM32

    上一段话包含两层意思:1、在不熟悉STM32的情况下,如何入手学习相关的技术知识。2、在不熟悉STM32的情况下,作为公司在职开发人员,如何快速进入STM32相关的项目开发工作中,保证开发效率。...看一个我碰到的项目实例:一同事在用STM32CubeMx生成的代码,要交到我这里来对项目代码进行整合,代码里用到的延时函数有两个HAL_Delay(), osDelay(),理论上,这两个延时函数的参数延时基准都是...通过图形配置部分,得知他设置的SYS 时钟源为TIM1,那么,理论上是APB2的FCKL2相关。...我们先定得找到延时函数所用到的参数配置,看源代码: 函数原型: __weak void HAL_Delay(__IO uint32_t Delay) { uint32_t tickstart...= HAL_GetTick(); while((HAL_GetTick() – tickstart) < Delay) { } } –> __weak uint32_t HAL_GetTick

    79420

    STM32HAL、LL标准库

    引言 我们在进行STM32开发的时候,使用寄存器进行开发的终究是少数,大多数人还是习惯用库函数进行开发。到目前为止,有标准外设库、HAL库、LL库 三种。本文将分别介绍以下三种库,便于大家区分。...它提供了对STM32微控制器的底层寄存器外设的直接访问。标准库的设计目标是提供高度灵活性低层次的硬件控制,以满足对性能资源的严格要求。...HAL库基于标准库,并提供了一组API函数,将底层硬件操作抽象为高级函数调用。这样,开发人员可以使用更高级别的API函数来进行配置控制微控制器的功能,而不需要直接操作底层寄存器。...LL库提供了对底层寄存器外设的更直接的访问,并提供了一组低级别的API函数。LL库保留了更多的硬件细节,为开发人员提供了更高级别的灵活性控制。...总结 ST提供的标准库、HALLL库各有其优势特点,如果是移植很久前的项目,大概率要使用标准库。如果新开发项目,使用STM32CubeMX就必须使用HALLL库了。

    3.6K20

    stm32hal之串口库函数总结复习

    1、串口的使用方法 在hal库中,有三个串口发送的函数 a、HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8...HAL_UART_Receive_ITHAL_UART_Transmit_DMA两个函数,没有超时,说明是非阻塞式发送,基本上不会占用cpu的太多的资源,而且发送完成有出发中断的功能。...2、串口接收也有三个函数 a、HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_...*pData, uint16_t Size) HAL_UART_Receive是阻塞式的接受函数,因此不建议使用,通常在开发过程中,基本上使用HAL_UART_Receive_ITHAL_UART_Receive_DMA...两个函数 目前我使用中断接受数据,dma发送数据,基本没有问题,如果加上定时器来判断空闲,基本上就实现了modbus的数据协议了。

    1.1K10

    stm32cubemx软件库_STM32cube

    通过SPI通信协议即可实现MCU(STM32) W25Q128 之间的通信。实现W25Q128的控制需要通过SPI协议发送相应的控制指令,并满足一定的时序。...当NSS管脚为低电平时,该spi设备被选中,可以主设备进行通信。在stm32中,每个spi控制器的NSS信号引脚都具有两种功能,即输入输出。所谓的输入就是NSS管脚的信号给自己。...轮询: 最基本的发送接收函数,就是正常的发送数据接收数据 中断: 在SPI发送或者接收完成的时候,会进入SPI回调函数,用户可以编写回调函数,实现设定功能 DMA: DMA传输SPI数据 利用SPI接口发送接收数据主要调用以下两个函数...读取数据的地址 Size 读取数据的大小 … 函数开始先将要发送的数据(命令地址)存储在cmd数组中, 拉低片选信号,开始SPI通信 然后后通过HAL_SPI_Transmit()函数发送出去,首先发送写命令...huart1; //声明串口 在 stm32f1xx_hal.c 中重写fgetfput函数 /** * 函数功能: 重定向c库函数printf到DEBUG_USARTx * 输入参数: 无 *

    80610

    STM32】CubeMX+HAL 点亮LED

    【1.4】 工程配置的主界面有四个菜单:Pinout & Configuration、Clock Configuration、 Project Manager Tools。 ?...如果你的芯片使用外部晶振,则 在 HSE LSE 下拉列表中选择“Crystal/Ceramic Resonator”。 注:一般开发板上都会有两个外部晶振。 ?...【1.10】当把工程的引脚外设全部配置完成后,点击主界面中的 “Project Manager” 菜单项,进入工程相关的参数配置界面。 ?...这样生成的工程将会为你配置的每一个外设生成对应的.c 文件.h 文件。 ? 【1.12】点击主界面右上角的 “GENERATE CODE”, 开始生成工程代码。 ?...总结 CubeMX+HAL 不需要理解底层寄存器的定义,使用起来非常方便 要理解生成的代码之间的逻辑联系,熟悉常用的 hal 函数 建议学完标准库后上手 CubeMX

    1.1K22

    STM32CubeMX | STM32 HAL库方式的微秒延时函数

    STM32CUBEMX系列教程之HAL库方式的微秒延时函数 ---- 标准库一般是使用系统嘀嗒定时器来进行微妙级别的延时,而HAL库将SysTick定时器用做了库函数的超时定时器,使用的地方非常多,自己修改代码使用嘀嗒定时器的话就会引起错乱...所以此时就需要自己实现一个微秒级别延时函数。 ---- 关注公众号雍正不秃头获取更多STM32资源及干货!...缺点:系统滴答定时器是HAL库初始化的,且必须有HAL库初始化。...#define CPU_FREQUENCY_MHZ 72 // STM32时钟主频 void delay_us(__IO uint32_t delay) { int last, curr...(delay--) { ; } } 方式三:普通定时器 优点: STM32全系列通用 缺点: 占用一个定时器 该方法的思路是将定时器设置为1MHZ的计数频率,定时器计一个数就是1us

    2K31

    STM32CubeMX实战教程(三)——外部中断(中断及HAL_Delay函数避坑)

    外部中断 前言 材料 NVIC 新建及配置工程 外部中断事件中断 NVIC配置 进入代码 回调函数 HAL_Delay()分析 下载验证 结语 前言 学单片机的,相信对中断的概念都已经了如指掌了...那么接下来同样是打开我们STM32开发板的原理图,分别找到按键LED的位置,可以看到有两个可编程LED,四个按键,从中我们可以获得几点信息。...在写代码前,先来介绍一下回调函数的概念,用过STM32中断的应该都知道,单片机再执行中断服务函数之前,Contex-M4内核先将现在使用到的寄存器主程序中断点的地址压入堆栈(保护现场)。.... * @retval None */ __weak void HAL_Delay(uint32_t Delay) { uint32_t tickstart = HAL_GetTick()...{ wait += (uint32_t)(uwTickFreq); } while((HAL_GetTick() - tickstart) < wait) {

    3.5K21

    STM32系统时钟RCC(基于HAL库)

    为什么这么多个时钟源: STM32系统是复杂的,高精度、低精度、高速、低速等,且可以对每个时钟源进行开关操作,可以把不需要使用的关闭掉。...STM32时钟: 从时钟源的角度可分为: l 外部时钟(E) l 内部时钟(I) 从时钟速率的角度分为: l 高速时钟(HS) l 低速时钟(LS) STM32在芯片复位后默认选用的是内部的高速时钟...为了减少时钟输出的失真缩短启动稳定时间,晶体/陶瓷谐振器负载电容必须尽可能地靠近振荡器引脚。负载电容值必须根据所选择的晶体来具体调整。...STM32系统时钟框图 image.png 系统时钟源总共有4个: l HSI RC:内部高速RC振荡器,相比于外部精度较低。通常约为8MHZ。...l 时钟可以进行独立的开启关闭 image.png 在STM32F103C8T6芯片中: PC14PC15是外部低速时钟的输入脚 PD0PD1是外部高速时钟的输入脚 PA8是时钟输出引脚,输出的时钟可编程选择

    1.2K20

    STM32CubeMX |42-使用DMA2D加速显存数据传输

    sdram初始化函数之后,添加lcd初始化函数,并使用HAL库自带的systick时间戳测量一次清屏的时间: /* USER CODE BEGIN 2 */ printf("sdram test by...mculover666\r\n"); SDRAM_Init(); printf("sdram init success\r\n"); lcd_init(); start_time = HAL_GetTick...(); lcd_clear(PINK); end_time = HAL_GetTick(); printf("lcd clear spend time:%ld ms\r\n", end_time -...DMA2D 在STM32中,DMA2D外设专门用来给LCD显示加速,有LTDC外设的型号中,通常也会配套有DMA2D。...可以看到,刷屏一次只需31ms即可,并且在使用dma2d传输数据的情况下,数据传输时间编译优化等级无关。 三、LCD基本功能实现 LCD基本功能包括打点、读点、画线、绘图等函数。 1.

    2.7K30

    基于STM32的串口收发详解(HAL库)

    本文详细的介绍如何来编写一个串口收发程序,我们采用常用的收发逻辑,发送直接编写函数进行实现,而接收使用中断进行完成。接收中断使用接收到一个字节一帧数据两种中断触发方式。...一般在我们开始配置完串口中断后,进入串口中断处理程序的情况会有很多,我们也可以自己选择打开哪些串口中断情况。一般情况下,我们在接受时主要使用的中断事件标志是RXNEIDLE。...首先是判断标志位,我们使用HAL库中的__HAL_UART_GET_FLAG()函数,里面有两个参数,前者是串口句柄,后者是具体哪个标志位。...重定向printfscanf 还有一点需要注意的,使用 fput fgetc 函数达到重定向 C 语言标准库输入输出函数必须在 MDK 的工程选项把“Use MicroLIB”勾选上, MicoroLIB...HAL_UART_Transmit(&huart3, (uint8_t *)&ch, 1, 0xffff); return ch; } /** * 函数功能: 重定向c库函数getchar,

    4.3K50

    STM32HAL库 STM32CubeMX教程三—-外部中断(HAL库GPIO讲解)

    前言 上一节我们讲解了STM32CubeMX的基本使用工程的配置,那么这一节我们正式来学习CubeMX配置STM32的各个外设功能了 今天我们会详细的带你学习STM32CubeMX配置外部中断,并且讲解...HAL库的GPIO的各种函数,带你学习不一样的STM32 如果还没有配置过工程,请参看上一篇博客 《STM32CubeMX教程二–基本使用(新建工程点亮LED灯)》 那么话不多说,我们开始正式的讲解吧!...准备工作: 1、STM32开发板(我的是STM32F407ZESTM32F103RC) 2、STM32CubeMx软件、 IDE: Keil软件 3、STM32F1xx/STM32F4xxHAL库...,就是清除中断标志位,之后进入中断回调函数中 在HAL库中,中断运行结束后不会立刻退出,而是会先进入相对应的中断回调函数,处理该函数中的代码之后,才会退出中断,所以在HAL库中我们一般将中断需要处理代码放在中断回调函数中...中文参考手册》中查看 关于GPIO的八种模式请参看 《STM32 GPIO八种模式及工作原理详解》 按键消抖: /** * 函数功能: 按键外部中断回调函数 * 输入参数: GPIO_Pin:中断引脚

    1.6K10

    基于STM32的定时器使用介绍(HAL库)

    STM32微控制器通常具有多个定时器模块,包括通用定时器(General Purpose Timer)高级定时器(Advanced Timer)。...以下是一些常见的STM32定时器的特点功能: 通用定时器(General Purpose Timer):STM32中常见的通用定时器包括TIM2、TIM3、TIM4等。...高级定时器(Advanced Timer):STM32中常见的高级定时器包括TIM1、TIM8等。它们通常具有以下特点: 具有更多的定时通道,用于更复杂的定时计数操作。 支持更高的定时精度频率。...使用STM32的定时器,您可以执行以下操作: 计时测量外部信号的时间参数,如脉冲宽度、周期等。 生成精确的定时延迟,用于控制操作的时序。 产生PWM信号,用于驱动电机、控制LED亮度等。...我们需要开启定时器中断: HAL_TIM_Base_Start_IT(&htim3); 编写定时器中断回调函数 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef

    93330

    基于STM32与FreeRTOS的消息传递详解(HAL库)

    介绍 消息队列概念 队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断任务间传递信息,实现了任务接收来自其他任务或中断的不固定长度的消息,任务能够从队列里面读取消息,当队列中的消息是空时...,实际上是调用了FreeRTOS的osMessageCreate()函数,只不过HAL库进行了封装。...实例 需求分析 此样例我们使用PC充当上位机,上位机发送数据后,在串口中断函数中将接收到的PC数据发送在消息队列myQueue01Handle中,之后在一个接收线程中接收这个消息的内容,并通过串口将接受到的消息的大小内容输出出来...发送消息 当上位机PC下发数据后,串口中断函数将接收到的数据发送在消息队列中。...我们将接受到的消息的大小内容通过串口发送出来。没有消息的时候,一直实现LED的闪烁。

    1.3K30
    领券