STM32 自定义延时函数

本文介绍了在STM32开发中如何利用系统计数器实现精确延时,通过配置STK_CTRL、STK_LOAD、STK_VAL、STK_CALIB寄存器,并结合CORTEX_M3的库函数,来设置不同周期的延时。当系统时钟为72MHz时,可以通过设置ticks值来控制延时时间,如ticks=72,000,000对应1s,ticks=72,000对应1ms,ticks=72对应1us。通过在中断服务程序中自减计数,确保延时精度。" 116175488,10073026,LeetCode 动态规划解题心得:1011. 在 D 天内送达包裹的能力,"['算法', '动态规划', '二分查找', 'LeetCode', 'Java']
摘要由CSDN通过智能技术生成

在stm32调试过程中加入一个延时,有两种方式:一种是纯计数方式,另一种是使用系统计数器的方式。

现使用系统计数器产生中断的方式实现,查阅STM32的编程手册可知,STM32有一个24bit的系统计时器,并有STK_CTRL、STK_LOAD、STK_VAL、STK_CALIB寄存器供读写配置。





STM32函数说明(中文) 本手册介绍了 32 位基于 ARM 微控制器 STM32F101xx 与 STM32F103xx 的固件函数库。 该函数库是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。该函 数库还包括每一个外设的驱动描述和应用实例。通过使用本固件函数库,无需深入掌握细节,用户也可以 轻松应用每一个外设。因此,使用本固态函数库可以大大减少用户的程序编时间,进而降低开发成本。 每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。每个器件的开发都由一个通用 API (application programming interface 应用编程界面)驱动,API 对该驱动程序的结构,函数和参数名称都进行 了标准化。 所有的驱动源代码都符合“Strict ANSI-C”标准(项目于范例文件符合扩充 ANSI-C 标准)。我们已经把驱动 源代码文档化,他们同时兼容 MISRA-C 2004 标准(根据需要,我们可以提供兼容矩阵)。由于整个固态 函数库按照“Strict ANSI-C”标准编,它不受不同开发环境的影响。仅对话启动文件取决于开发环境。 该固态函数库通过校验所有库函数的输入值来实现实时错误检测。该动态校验提高了软件的鲁棒性。实时 检测适合于用户应用程序的开发和调试。但这会增加了成本,可以在终应用程序代码中移去,以优化代 码大小和执行速度。想要了解更多细节,请参阅 Section 2.5。 因为该固件库是通用的,并且包括了所有外设的功能,所以应用程序代码的大小和执行速度可能不是优 的。对大多数应用程序来说,用户可以直接使用之,对于那些在代码大小和执行速度方面有严格要求的应 用程序,该固件库驱动程序可以作为如何设置外设的一份参考资料,根据实际需求对其进行调整。 此份固件库用户手册的整体架构如下: „ 定义,文档约定和固态函数库规则。 „ 固态函数库概述(包的内容,库的架构),安装指南,库使用实例。 „ 固件库具体描述:设置架构和每个外设的函数STM32F101xx 和 STM32F103xx 在整个文档中被STM32F101x。
对于STM32定时器延迟,通常有多种实现方式。其中一种常见的方式是使用定时器中断来实现延时功能。通过配置定时器的计数值和预分频系数,可以设置定时器中断触发的时间间隔。在定时器中断服务函数中,可以完成所需的延时操作。这种方式的优点是精度较高,并且可以实现较长的延时时间。 另一种方式是使用延时函数。在STM32的单片机编程中,常用的延时函数有微秒级的delay_us()和毫秒级的delay_ms()。这些延时函数基于循环实现,通过让单片机执行一些无关紧要的工作来达到延时的目的。然而,这种方式的精度较低,对于一般的延时和不对精度要求过高的应用场景可以使用。 总而言之,对于STM32定时器延迟,可以根据具体的需求选择使用定时器中断延时函数来实现。定时器中断可以实现较高精度和较长延时时间,而延时函数则更简单易用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [STM32延时函数的四种方法](https://blog.csdn.net/Firefly_cjd/article/details/106709259)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值