Systick定时器延时原理与HAL_Delay()延时函数的使用 代码的书写过程中经常用到延时,这里主要讲述一下HAl延时,HAL库之HAL_Delay()函数在72M主频,STM32CUBEMX自动生成情况下,默认为延时1ms单位,即HAL_Delay(500)表示500ms延时,这是因为在默认状态下,SysTick()默认设置为1ms中断,下面就原理进行叙述。
来实现延时的话,又由于实现方式是滴答定时器对寄存器进行计数,所以当我们在其它中断服务程序里调用基于此时间基准的延迟函数 HAL_Delay,那么假如该中断的优先级高于滴答定时器的优先级,就会导致滴答定时器中断服务函数一直得不到运行,从而程序卡死在这里。
所以我们学习HAL库的同时,还需要学习外设的工作原理和寄存器的配置方法,通过原理来理解HAL库是怎样实现我们想要的功能,要知其然更要知其所以然。(2)HAL库不仅仅是底层驱动,它更是一套行业内可以公开和认可的架构。学习HAL库,我们要了解它的架构,了解库中每个文件夹下大概有哪些文件,文件之间的关系是什么,函数之间...
HAL库常用函数汇总 1,系统函数HAL_Delay原型:voidHAL_Delay(uint32_tDelay);作用:利用滴答定时器生成的系统延迟函数参数:Delay:延迟时间,单位是ms返回值:无示例代码 2023-11-29 08:00:53 MCU独立看门狗和窗口看门狗的区别 早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的...
STM32CubeMX-27(补充) | 系统滴答定时器Systick的使用 本篇文章主要介绍STM32中Systick定时器的使用以及HAL_Delay函数的原理。 02 摸鱼写一个TS 秒表计时类 类似手机秒表功能,调用记录api,记录当前时间戳。 可获取一段或多段时间间隔,可获取跨时段间隔。
Cortex-M内核的中断管理机构叫NVIC(Nested Vectored Interrupt Controller),即嵌套向量中断控制器。关于...
(&hi2c, deviceAddress, ®isterAddress, 1, HAL_MAX_DELAY); // 发送读取请求 HAL_I2C_Master_Receive(&hi2c, deviceAddress, data, size, HAL_MAX_DELAY); // 接收数据 } int main() { HAL_Init(); // 初始化HAL库 I2C_Init(); // 初始化I2C外设 uint8_t data[4]; I2C_Read(0xA0, ...
所以我们学习HAL库的同时,还需要学习外设的工作原理和寄存器的配置方法,通过原理来理解HAL库是怎样实现我们想要的功能,要知其然更要知其所以然。 (2)HAL库不仅仅是底层驱动,它更是一套行业内可以公开和认可的架构。学习HAL库,我们要了解它的架构,了解库中每个文件夹下大概有哪些文件,文件之间的关系是什么,函数...
最终还是要通过配置寄存器来实现。所以我们学习HAL库的同时,也建议同时学习外设的工作原理和寄存器的配置...
HAL库通用API,比如HAL_Init(HAL库初始化函数)、HAL_DeInit和HAL_Delay等函数,主要实现HAL库的初始化、系统滴答,HAL库延时、IO重映射和DBGMCU等功能。 stm32mp1xx_hal_def.h HAL 的通用数据类型、宏、枚举和结构体定义。 如HAL函数操作结果返回值类型。 stm32mp1xx_hal_cortex.h stm32mp...