基于STM32定时器的LED灯读表闪烁方法及系统技术方案

技术编号:11286813 阅读:155 留言:0更新日期:2015-04-11 01:26
本发明专利技术涉及基于STM32定时器的LED灯读表闪烁方法,首先创建一个LED闪烁列表,包括:A、系统对定时器进行初始化处理并预设好定时器的中断时间;B、定时器中断读取列表中LED亮起数值保存到变量并切换LED亮,读取循环次数;C、判断LED亮起数值变量是否变为零;D、定时器中断系统读取列表中的LED灭灯数值保存到变量中并切换LED灭灯;E、判断LED灭灯数值变量是否变为零;F、LED灯亮灭一次对循环次数减1;G、判断循环次数变量是否变为零;H、定时器中断时将步骤G中读取的延时时间变量减1;I、判断延时时间变量是否变为零。利用STM32芯片自带定时器不占用系统内存,不占用任务堆栈,节省系统资源。

【技术实现步骤摘要】
【专利摘要】本专利技术涉及基于STM32定时器的LED灯读表闪烁方法,首先创建一个LED闪烁列表,包括:A、系统对定时器进行初始化处理并预设好定时器的中断时间;B、定时器中断读取列表中LED亮起数值保存到变量并切换LED亮,读取循环次数;C、判断LED亮起数值变量是否变为零;D、定时器中断系统读取列表中的LED灭灯数值保存到变量中并切换LED灭灯;E、判断LED灭灯数值变量是否变为零;F、LED灯亮灭一次对循环次数减1;G、判断循环次数变量是否变为零;H、定时器中断时将步骤G中读取的延时时间变量减1;I、判断延时时间变量是否变为零。利用STM32芯片自带定时器不占用系统内存,不占用任务堆栈,节省系统资源。【专利说明】基于STM32定时器的LED灯读表闪烁方法及系统
本专利技术属于LED自动控制领域,尤其涉及一种基于STM32定时器的LED灯读表闪 烁方法及系统。
技术介绍
在编写开发以stm32芯片软件部分时,控制led灯闪烁是经常遇到的问题。一般 led闪烁控制是其控制过程为首先创建多个进程,在每个进程控制一盏LED等,通过修改 LED灯电平状态,配合延时来进行LED闪烁控制。在现有的LED灯闪烁技术中存在以下缺 点,1、需要多进程环境,浪费任务堆栈;2、当led灯需要不同闪烁方法时,需要在代码中手 动修改,十分麻烦;3、难以对各种不同的led灯闪烁方法进行有效归纳。
技术实现思路
本专利技术的目的在于提供一种基于STM32定时器的LED灯读表闪烁方法,旨在解决 现有LED灯闪烁控制的技术问题。 本专利技术是这样实现的,一种基于STM32定时器的LED灯读表闪烁方法,首先创建一 个LED闪烁列表,设定一个最小时间单位,其中闪烁列表中的数值可以为零;所述LED灯读 表闪烁方法包括以下步骤: A、 系统对定时器进行初始化处理并预设好定时器的中断时间; B、 在定时器进入中断系统读取列表中的LED亮起数值保存到变量中并切换到LED亮起 状态,并且读取循环次数; C、 判断LED亮起数值变量是否变为零,如变量不为零,则在下次中断依旧执行步骤B, 如变量为零,则执行步骤D; D、 在定时器进入下次中断系统读取列表中的LED灭灯数值保存到变量中并切换到LED 灭灯状态; E、 判断LED灭灯数值变量是否变为零,如变量不为零,则在下次中断依旧执行步骤D, 如变量为零,则执行步骤F; F、LED灯亮灭一次结束系统对循环次数减1 ; G、 判断循环次数变量是否变为零,如变为零,则读取列表中的延时时间的变量并执行 步骤H,如没变为零,则执行步骤F; H、 在定时器进入下次中断时将步骤G中系统读取的延时时间变量减1 ; I、 判断延时时间变量是否变为零,如变为零,则执行步骤B,如没变为零,则重复执行步 骤I。 本专利技术的进一步技术方案是:所述步骤B中还包括以下步骤: B1、在定时器进入下次中断时将之前读取的亮灯变量减1。 本专利技术的进一步技术方案是:所述步骤D中还包括以下步骤: D1、在定时器进入下次中断时将之前读取的灭灯变量减1。 本专利技术的进一步技术方案是:将设定的最小时间单位设置为定时器中断,所述最 小时间单位为5_15ms。 本专利技术的进一步技术方案是:在创建的LED闪烁列表中包括亮灯时间、灭灯时间、 循环次数、延时时间及宏。 本专利技术的另一目的在于提供一种基于STM32定时器的LED灯读表闪烁系统,首先 创建一个LED闪烁列表,设定一个最小时间单位,其中闪烁列表中的数值可以为零;所述 LED灯读表闪烁系统包括: 系统初始化模块,用于系统对定时器进行初始化处理并预设好定时器的中断时间; 亮灯读表模块,用于在定时器进入中断系统读取列表中的LED亮起数值保存到变量中 并切换到LED亮起状态,并且读取循环次数; 亮灯变量判断模块,用于判断LED亮起数值变量是否变为零,如变量不为零,则在下次 中断依旧执行亮灯读表模块,如变量为零,则执行灭灯对标模块; 灭灯读表模块,用于在定时器进入下次中断系统读取列表中的LED灭灯数值保存到变 量中并切换到LED灭灯状态; 灭灯变量判断模块,用于判断LED灭灯数值变量是否变为零,如变量不为零,则在下次 中断依旧执行灭灯对标模块,如变量为零,则执行循环次数递减模块; 循环次数递减模块,用于LED灯亮灭一次结束系统对循环次数减1 ; 循环变量判断模块,用于判断循环次数变量是否变为零,如变为零,则读取列表中的延 时时间的变量并执行延时时间递减模块,如没变为零,则执行循环次数递减模块; 延时时间递减模块,用于在定时器进入下次中断时将循环变量判断模块中系统读取的 延时时间变量减1; 延时时间变量判断模块,用于判断延时时间变量是否变为零,如变为零,则执行亮灯读 表模块,如没变为零,则重复执行延时时间变量判断模块。 本专利技术的进一步技术方案是:所述亮灯读表模块中还包括: 亮灯变量递减单元,用于在定时器进入下次中断时将之前读取的亮灯变量减1。 本专利技术的进一步技术方案是:所述灭灯对标模块中还包括: 灭灯变量递减单元,用于在定时器进入下次中断时将之前读取的灭灯变量减1。 本专利技术的进一步技术方案是:将设定的最小时间单位设置为定时器中断,所述最 小时间单位为5_15ms。 本专利技术的进一步技术方案是:在创建的LED闪烁列表中包括亮灯时间、灭灯时间、 循环次数、延时时间及宏。 本专利技术的有益效果是:通过创建维护一个LED闪烁列表来控制LED灯闪烁,利用 stm32芯片自带定时器来查找列表,利用封装好的接口调用闪烁表中的宏即可修改led灯 闪烁状态,非常方便,使用了定时器,而非延时方法实现了LED的闪烁,不占用系统内存,不 占用任务堆栈,极大的节省了系统资源。 【专利附图】【附图说明】 图1是本专利技术实施例提供的基于STM32定时器的LED灯读表闪烁方法的方法流程 图; 图2是本专利技术实施例提供的基于STM32定时器的LED灯读表闪烁系统的结构框图。【具体实施方式】 附图标记:1_系统初始化模块2-亮灯读表模块3-亮灯变量判断模块4-灭灯 读表模块5-灭灯变量判断模块6-循环次数递减模块7-循环变量判断模块8-延时 时间递减模块9-延时时间变量判断模块。 图1示出了本专利技术提供的基于STM32定时器的LED灯读表闪烁方法,首先创建一 个LED闪烁列表,设定一个最小时间单位,其中闪烁列表中的数值可以为零;在创建的LED 闪烁列表中包括亮灯时间、灭灯时间、循环次数、延时时间及宏;其中LED闪烁列表如表一 所示。 表一 【权利要求】1.基于STM32定时器的LED灯读表闪烁方法,其特征在于,首先创建一个LED闪烁列 表,设定一个最小时间单位,其中闪烁列表中的数值可以为零;所述LED灯读表闪烁方法包 括以下步骤: A、 系统对定时器进行初始化处理并预设好定时器的中断时间; B、 在定时器进入中断系统读取列表中的LED亮起数值保存到变量中并切换到LED亮起 状态,并且读取循环次数; C、 判断LED亮起数值变量是否变为零,如变量不为零,则在下次中断依旧执行步骤B, 如变量为零,则执行步骤D; D、 在定时器进入下次中断系统读取列表中的LED灭本文档来自技高网...

【技术保护点】
基于STM32定时器的LED灯读表闪烁方法,其特征在于,首先创建一个LED闪烁列表,设定一个最小时间单位,其中闪烁列表中的数值可以为零;所述LED灯读表闪烁方法包括以下步骤:A、系统对定时器进行初始化处理并预设好定时器的中断时间;B、在定时器进入中断系统读取列表中的LED亮起数值保存到变量中并切换到LED亮起状态,并且读取循环次数;C、判断LED亮起数值变量是否变为零,如变量不为零,则在下次中断依旧执行步骤B,如变量为零,则执行步骤D;D、在定时器进入下次中断系统读取列表中的LED灭灯数值保存到变量中并切换到LED灭灯状态;E、判断LED灭灯数值变量是否变为零,如变量不为零,则在下次中断依旧执行步骤D,如变量为零,则执行步骤F;F、LED灯亮灭一次结束系统对循环次数减1;G、判断循环次数变量是否变为零,如变为零,则读取列表中的延时时间的变量并执行步骤H,如没变为零,则执行步骤F;H、在定时器进入下次中断时将步骤G中系统读取的延时时间变量减1;I、判断延时时间变量是否变为零,如变为零,则执行步骤B,如没变为零,则重复执行步骤I。

【技术特征摘要】

【专利技术属性】
技术研发人员:孙文健郑晓庆何照丹
申请(专利权)人:深圳市航盛电子股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1