STM32F0_SYSTICK在STM32CUBEMX中的设置

发布者:平静心境最新更新时间:2018-07-17 来源: eefocus关键字:STM32F0  SYSTICK  STM32CUBEMX 手机看文章 扫描二维码
随时随地手机看文章

     用过STM32CUBEMX的童鞋们都知道,代码生成的时候默认HAL_Delay延时单位为ms,当程序中要用到us延时的时候该怎么办呢!

     最终评估下来,感觉原子的思路比较靠谱,不带OS的设计理念是搞清楚SYSTICK的RELOAD寄存器的数值代表什么,代码生成时默认为47999,也就是说

     定时器从47999减1减到0的时候,时间过了1000us,换算后得出数值从47减到1的时候时间过了1us.


void HAL_Delay_us(__IO uint32_t delay_us)

{

uint32_t first_value = 0;            

uint32_t current_value = 0;       

uint32_t reload = SysTick ->LOAD; 

uint32_t nus_number = delay_us * ((reload + 1) / 1000);

uint32_t change_number = 0;

 

        first_value = SysTick ->VAL;

while(1)

{

 current_value = SysTick ->VAL;

 if(current_value != first_value)

{

 

if(current_value < first_value)

{

  change_number += first_value - current_value;

  //change_number = first_value - current_value + change_number;

}

else

{

 change_number += reload - current_value + first_value;

}

first_value = current_value;  

if(change_number >= nus_number)

{

 break;

}

}

}

}

无需更改任何其它代码,直接在需要的地方插入HAL_Delay_us(nus);

关键字:STM32F0  SYSTICK  STM32CUBEMX 引用地址:STM32F0_SYSTICK在STM32CUBEMX中的设置

上一篇:STM32笔记:使用SysTick测量程序的运行时间
下一篇:STM32之用SysTick做准确定时

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

STM32的SYSTICK详解
什么是SYSTICK: 这是一个24位的系统节拍定时器system tick timer,SysTick,具有自动重载和溢出中断功能,所有基于Cortex_M3处理器的微控制器都可以由这个定时器获得一定的时间间隔。 作用: 在单任务引用程序中,因为其架构就决定了它执行任务的串行性,这就引出一个问题:当某个任务出现问题时,就会牵连到后续的任务,进而导致整个系统崩溃。要解决这个问题,可以使用实时操作系统(RTOS). 因为RTOS以并行的架构处理任务,单一任务的崩溃并不会牵连到整个系统。这样用户出于可靠性的考虑可能就会基于RTOS来设计自己的应用程序。这样SYSTICK存在的意义就是提供必要的时钟节拍,为RTOS的任务调度提供一个有
[单片机]
STM32的<font color='red'>SYSTICK</font>详解
再造STM32---第十六部分:SysTick—系统定时器
本章参考资料《ARM Cortex™-M4F 技术参考手册》 -4.5 章节 SysTick Timer(STK), 和4.48 章节 SHPRx,其中 STK 这个章节有 SysTick 的简介和寄存器的详细描述。因为SysTick 是属于 CM4 内核的外设,有关寄存器的定义和部分库函数都在 core_cm4.h 这个头文件中实现。所以学习 SysTick 的时候可以参考这两个资料,一个是文档,一个是源码。 16.1 SysTick 简介: SysTick—系统定时器是属于 CM4 内核中的一个外设,内嵌在 NVIC 中。系统定时器是一个 24bit 的向下递减的计数器,计数器每计数一次的时间为 1/SYSC
[单片机]
再造STM32---第十六部分:<font color='red'>SysTick</font>—系统定时器
使用STM32CubeMX创建一个USB+FATFS的TrueSTUDIO环境下的工程
一、准备工具 STM32CubeMX软件; TrueSTUDIO软件; STM32F429BI开发板带USB接口一块。 二、USB电路图 从电路图可以看出,只有两个接口与单片机连接,虽然使用的是单片机的高速引脚,但缺少高速芯片(自行科普),只能拿高速(HS)引脚当全速(FS)引脚用。 三、使用STM32CubeMX配置USB及FATFS 1.时钟配置 我这里使用的是高速外部时钟 时钟源是8MHz的晶振 2.USB配置 选择USB_OTG_HS,配置内部PHY为主机 选择USB_HOST,配置IP为MSC(大容量存储设备)模式 3.FATFS配置 选择FATFS,配置Mode为USB
[单片机]
使用<font color='red'>STM32CubeMX</font>创建一个USB+FATFS的TrueSTUDIO环境下的工程
利用STM32的SysTick设计精确延时函数
在项目中使用I2C接口传感器时要求有比较精确的延时,在网上搜了下,如果不想用中断SysTick定时器可以做到,找到如下资料: 主要仿照原子的《STM32不完全手册》。SYSTICK 的时钟固定为HCLK 时钟的1/8,在这里我们选用内部时钟源72M,所以SYSTICK的时钟为9M,即SYSTICK定时器以9M的频率递减。SysTick 主要包含CTRL、LOAD、VAL、CALIB 等4 个寄存器, SysTick- CTRL 位段 名称 类型 复位值 描述 16 COUNTFLAG R 0 如果在上次读本寄存器后systick已为0,则该位为1,若 读该位自动清零 2 CLKSOURCE RW
[单片机]
学习STM32CubeMX与HAL库吐槽
最近因为一个小项目(智能穿戴),用到了STM32L0(低功耗 Cortex M0)系列的MCU, 查了官网,居然没有提供固件库,只有HAL库,于是STM32CubeMX生成了HAL库的工程,学习HAL的使用: STM32CubeMX与HAL库的优点: 1、降低了使用外设的门槛,所有时钟设置等一目了然。 2、统一了代码的架构、风格,让源代码的可读性“保底线“提高。 吐槽如下: 1、工程的架构很死了,只能在框框条条里填写内容,这完全违背了C程序员们的习惯。例如,要自己加上OS,代码结构会很难看。 2、但一但遇上了坑,就无法解决。 3、依赖性更高了,而且这工具有BUG,例如:在生成代码时,终止ST
[单片机]
STM32CubeMX系列 | RTC实时时钟
1. RTC实时时钟简介 STM32的实时时钟RTC是一个独立的定时器,RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能,修改计数器的值可以重新设置系统当前的时间和日期 RTC模块和时钟配置系统(RCC_BDCR寄存器)是在后背区域,即在系统复位或从待机模式唤醒后RTC的设置和事件维持不变。但是在系统复位后,会自动禁止访问后备寄存器和RTC,以防止对后备区域(BKP)的意外操作。所以在要设置时间之前,要先取消备份区域写保护。RTC的简化框图如下所示: RTC由两个主要部分组成:第一部分(APB1接口)用来和APB1总线相连,此单元还包含一组16位寄存器,可通过APB1总线对其进行读写操作;另一部分(R
[单片机]
STM32学习笔记—SysTick定时器
Q:什么是SYSTick定时器? SysTick 是一个24 位的倒计数定时器,当计到0 时,将从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存器中的使能位清除,就永不停息。 Q:为什么要设置SysTick定时器? (1)产生操作系统的时钟节拍 SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。在以前,大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统“心跳”的节律。 (2)便于不同处理器之间程序移植。 Cortex㎝3处
[单片机]
STM32CubeMX芯片包(固件库)使用注意
1. 解压本地固件库包后需要将文件夹放到指定路径,该指定路径为cubemx软件中的help - updater settings - updater settings - repository folder中的路径,本人的路径为C:/Users/WR/STM32Cube/Repository/。之前没有放到指定路径,因此Generate Code时会提示错误信息。 2. 将固件库放入指定路径后,需要在CubeMX软件中选择它,点击工具栏Project - Settings - Project - Firmware Package Name and Version中选择刚刚放置到指定位置的固件库,本人的固件库为STM32Cube
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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