一、现象
调用函数 f_open()
后,程序崩溃,调试后发现,单片机产生硬件中断,即软件跳入如下部分:
1 | void HardFault_Handler(void) |
第一种情况,在使用普通 STM32 延迟函数,类似于 HAL_Delay(time)
,由于该函数是使用循环去判断及延时的,所以在执行该函数时整个程序会在此处等待定时器的中断服务函数修改参量使得循环判决条件不成立,从而继续程序的执行,同时也达到延迟时间的效果。由于使用的是系统的定时器进行延迟,所以时间相对准确。
第二种情况,当需要周期性的执行一个任务时,将这个函数放在某个定时器的中断服务函数里,设置好定时器的时间,完成时产生中断,从而进入中断服务函数执行该函数。此时,MCU 执行中断程序,只有更高优先级的中断才能打断当前执行的中断服务函数,进入更高优先级的中断服务函数去执行。需要等所有中断服务函数都执行完成,才会退回到主函数。
第三钟情况,而结合定时器以及相应的标志位,直接在主函数中达到周期任务的效果。原理如下:
Flint OS 是基于最新的Linux长期支持版4.4内核版本和最新的稳定版Chromium OS r55开发的操作系统。更多的介绍可以上官网的视频介绍。
kindleEAR是一个运行在Google App Engine(GAE)上的Kindle个人推送服务应用,生成排版精美的杂志模式mobi/epub格式自动每天推送至您的Kindle或其他邮箱。
此应用目前的主要功能有: