• 2024-06-15STM32定时器篇——Systick定时器的使用(实现delay延时函数)
    一、Systick定时器的简介:        Systick定时器就是系统滴答定时器,一个24 位的倒计数定时器对于CM3,CM4内核芯片,都有Systick定时器。当Systick计到0时,将从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存器中的使能位清除,就永不停息,即使在
  • 2024-06-07CH32系列MCU SysTick使用与计算
    1、关于SysTickCH32F103/203:CH32F103/203为Cortex-M3内核,SysTick是一个24位的向下递减计数器,计数器每计数一次的时间可配置为1/时基。当SysTick重装载数寄存器的值递减到0的时候,产生一次中断。CH32F系列MCUSysTick由4个寄存器控制,具体如下图。具体介绍可参考《CM3权威指南》
  • 2024-05-24单片机HC32系列IO模拟I2C 延时调试记录
    一. SysTick_Config和delay冲突因为 SysTick_Config 被用于设置SysTick为操作系统计时,而 delay 函数又使用了SysTick来实现延时,导致两者对SysTick的配置不一致。导致 SysTick_Config无法再次进入SysTick_IRQHandler()函数。 解决方法:将delay改为for循环延时。delay1
  • 2024-05-06【GD32】---- 移植工程模板
    1新建模板文件夹新建一个名叫03_GD32TemplateProject的文件夹,用于建造工程模板2移植官方库文件在模板文件夹里新建5个文件夹,分别存放官方库文件和系统驱动文件01_main存放main函数02_Startup存放系统启动文件03_System存放官方的系统文件04_Firmware_PeripheralD
  • 2024-04-08【ARM课】4-Systick
    1.cubemx设置参考文章【STM32】HAL库-系统滴答定时器SysTick时钟设置将HCLK设置为最大频率72MHzNVIC设置Timebase:Systemticktimer优先级默认为15,可以自己修改,没有其他中断的时候也可以不修改2.使用函数电平翻转voidHAL_GPIO_TogglePin(GPIO_TypeDef*GPI
  • 2024-03-24STM32之HAL开发——系统定时器(SysTick)
    系统定时器(SysTick)介绍   SysTick—系统定时器是属于CM3内核中的一个外设,内嵌在NVIC中。系统定时器是一个24bit的向下递减的计数器,计数器每计数一次的时间为1/SYSCLK,一般我们设置系统时钟SYSCLK等于72M。当重装载数值寄存器的值递减到0的时候,系统定时器就产生
  • 2024-03-22FreeRTOS教程10 低功耗
    1、准备材料正点原子stm32f407探索者开发板V2.4STM32CubeMX软件(Version6.10.0)KeilµVision5IDE(MDK-Arm)野火DAP仿真器XCOMV2.6串口助手2、学习目标本文主要学习FreeRTOS低功耗的相关知识,包括HAL库基础时钟、FreeRTOS基础时钟、低功耗处理和Tickless模式等知识3、
  • 2024-02-2404. 系统滴答定时器
    一、系统滴答定时器概述  SysTick,即系统滴答定时器,它包含在M3/4/7内核里面,核心是一个24位的递减计数器。当计数值减到0时,将从RELOAD寄存器中自动重装载定时初值,开始新一轮计数。只要不把它在SysTick控制及状态寄存器中的使能位清除,就永不停息。二、SysTick寄存器介
  • 2024-02-22什么是PendSV
    什么是PendSV一、什么是PendSVPendSV是可悬起异常,如果我们把它配置最低优先级,那么如果同时有多个异常被触发,它会在其他异常执行完毕后再执行,而且任何异常都可以中断它。更详细的内容在《Cortex-M3权威指南》里有介绍,下面我摘抄了一段。OS可以利用它“缓期执行”
  • 2024-02-21rt-thread 性能测试
      在实时操作系统中,线程调度花费的时间是一个值得关注的影响系统实时性的因素,尤其是在系统需要处理紧急的任务时,线程调度的时间更是不能忽略。我采用了一种测量GPIO输出正脉冲宽度的方法,测量出了RT-Thread系统线程调度所需的时间。  实验中,我使用了GD32F103系列单片机,单片
  • 2023-12-22STM32中滴答定时器的使用并进行ms和us级延时
    STM32中滴答定时器的使用并进行ms和us级延时滴答定时器(Systick)滴答定时器Systick是stm32内核中的一个系统定时器,是属于内核的外设。滴答定时器是一个24位的倒计数定时器,当计数到0时,会从LOAD寄存器中自动重装载定时初值,开始新一轮计数。在core_cm3.h和core_cm4.h头文件中都会
  • 2023-10-21【HAL 库复盘】自己手动创建工程模版Undefined symbol HAL_NVIC_SetPriority 问题解决
    1问题说明学习自己手动搭建一个STM32HAL库工程模板文件的时候,我发现了有6个错误,6个错误的类型是一样的,其中有3个通过添加hal_rcc.h和hal_gpio.c文件得以解决。所以另外3个我也想到了时缺少了对应的.c文件导致的错误。但是在STM32F1xx_HAL_Driver文件夹中,我没有找到类似如有“rcc
  • 2023-09-2906. 系统滴答定时器
    一、SysTick定时器简介  SysTick,即系统滴答定时器,是属于CM3内核中的一个外设,内嵌在NVIC中。系统定时器是一个24bit的向下递减的计数器,SysTick的时钟源自HCLK。当计数值减到0时,将从RELOAD寄存器中自动重装载定时初值,开始新一轮计数。只要不把它在SysTick控制及状
  • 2023-09-20Systick定时器详解
    目录一.SysTick简介1.SysTick概念2.Systick寄存器二.代码详解1.寄存器方式驱动2.固件库方式驱动一.SysTick简介1.SysTick概念Systick属于系统内核中的外设,其详细使用说明和寄存器介绍都在M3权威指南手册中.Systick内嵌在NVIC中,系统定时器是一个24bit的向下递
  • 2023-08-20CH32V003的系统定时器SysTick
    在CH32V003内部有一个特殊的定时器——系统定时器(SysTick),它位于青稞V2微处理内核里面,是RISC-V内核的一个组成部分,主要用来给操作系统提供时间片轮转的定时,一般固定为10ms的定时,所以中文也称它为“嘀嗒”定时器(也称“心跳”定时器)。在不跑操作系统时,可以把它当作普通定时器来使用,一
  • 2023-08-09关于CH32F系列以及CH32V系列 SysTick的使用
    1、关于SysTickCH32F103/203:CH32F103/203SysTick和STM32F103一样为Cortex-M3内核,是一个24位的向下递减计数器,计数器每计数一次的时间为1/SYSCLK(系统主频)。当SysTick重装载数寄存器的值递减到0的时候,产生一次中断。CH32F系列MCUSysTick由4个寄存器控制,具体如下图。具体介绍可
  • 2023-07-31CM4 systick 时钟源设置
    CM4systick时钟源设置起因之前离职的同事交接给我的项目里面timer2的配置错误让我决定修改他用到的每一个时钟的配置。systick时钟源设置方法systick的时钟源可以从两个地方选择。internal源external源TheCortexSystemTimer(SysTick)externalclockisclocked
  • 2023-07-2506. 系统滴答定时器
    一、SysTick定时器简介  SysTick,即系统滴答定时器,是属于CM3内核中的一个外设,内嵌在NVIC中。系统定时器是一个24bit的向下递减的计数器,SysTick的时钟源自HCLK。当计数值减到0时,将从RELOAD寄存器中自动重装载定时初值,开始新一轮计数。只要不把它在SysTick控制及状
  • 2023-06-27【FreeRTOS复盘】3-FreeRTOS系统的时钟节拍和延时函数
    参考文章1:《FreeRTOS的学习(六)——系统时钟》参考文章2:【FreeRTOS】04系统的时钟节拍和延时函数 原理reeRTOS使用裸机自带的滴答定时器中断,使用其主频或者外部频率作为时钟基准。由于定时器的功能作为FreeRTOS的核心,所以正常情况下必须是一个一直运行着的中断,那么就意味着Fre
  • 2023-06-12CH32--裸机系统实现多任务
    在ram和flash资源足够的芯片中,我们通常通过跑操作系统来实现多任务,但此方法有个弊端,那就是对ram要求高,那么对于比如003这种只有2K ram的小容量芯片可能就不太够用了。这时就需要裸机来实现多任务了,方法如下:在裸机中,通常都是在一个while循环中,通过判断相应的标志位,来按照顺序
  • 2023-04-3017 设备处理内核I/O包
    I/O包:内核要求设备完成的任务,需要调用驱动程序,传参给驱动;操作所需的参数数量大,需要I/O包统一管理;objnode_t结构:objnode_t结构包含了各个驱动程序功能函数的所有参数;创建和删除I/O包:内存管理组件分配释放objnode_t结构;krlnew_objnode创建,krldel_objnode删除;向设备发
  • 2023-04-05GD32单片机设置us级延时
    us延时会在很多外设驱动的时候用到,但是GD32提供的资料里面没有看到,只有一个ms延时的函数,不过GD32用的和stm32是一样的内核,因此也可以套用stm32嘀嗒定时器的版本,就是直接用stm32的思路来实现,这里直接贴代码:说明一下实验平台:GD32F470ZG立创梁山派开发板代码如下:#include"del
  • 2023-03-03systick 理解
     systick中断的优先级往往设置为最低值,而不是最高值;如果设置为最低值不会发生上图标号[6]处的情况,设置为最低可能会被其他中断抢占,延长systick的响应时间,但是这个延迟
  • 2023-02-27CH58x嘀嗒定时器(SysTick)
    一、 SysTick是一个定时器,只是它放在了NVIC中,主要的目的是为了给操作系统提供一个硬件上的中断(号称滴答中断)。只要不把它在SysTick控制及状态寄存器中的使能位清除,就永不
  • 2023-02-24【嵌入式】微芯旺KungFu32A156MQT读取DS18B20温度计
    相关资料(74条消息)DS18B20使用说明_ds18b20复位_Joyin_Lee的博客-CSDN博客解决DS18B20读取异常的问题-知乎(zhihu.com) 出现问题为了方便,我从51单片机的例程里