历史上的今天

今天是:2024年09月06日(星期五)

正在发生

2019年09月06日 | stm32f429 中通过基本定时器中断控制LED灯亮一秒、灭一秒

发布者:心灵之舞 来源: eefocus关键字:stm32f429  基本定时器  中断控制  LED灯 手机看文章 扫描二维码
随时随地手机看文章

stm32f429中基本定时器有两个,通用定时器有十个,高级定时器有两个。其中基本定时器为TIM6和TIM7。


此处通过编写TIM7定时中断控制LED灯亮灭,TIM6与之类似。


首先可以新建一个.c 和.h 文件,在.c文件中进行TIM7函数定义等,如下图所示:


#include "bsp_tim_basic.h"

static void BASIC_TIMx_Mode_Config()

{

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM7,ENABLE);//开启时钟

TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;//结构体申明

TIM_TimeBaseInitStruct.TIM_Prescaler=8999;//设置时钟周期为10000hz psc 90M/(psc+1)

 

TIM_TimeBaseInitStruct.TIM_Period=9999;//设置ARR 10000次

 

TIM_ITConfig(TIM7,TIM_IT_Update,ENABLE);//使能更新

TIM_TimeBaseInit(TIM7,&TIM_TimeBaseInitStruct);//定时器初始化

TIM_Cmd(TIM7,ENABLE);//定时器使能

}

static void NVIC_TIMBasic_Config()

{

NVIC_InitTypeDef NVIC_InitStruct;

        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

NVIC_InitStruct.NVIC_IRQChannel=TIM7_IRQn;

NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=1;

NVIC_InitStruct.NVIC_IRQChannelSubPriority=1;

NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;

        NVIC_Init(&NVIC_InitStruct);

}

void TIMx_Basic_Config(void)

{

NVIC_TIMBasic_Config();

BASIC_TIMx_Mode_Config();

}

由于前两个函数前有static修饰,所以写了最后一个函数以便于其他文件对前两个函数的调用。


在.h文件中对所需的头文件以及可被外部调用的函数进行申明。


#ifndef _BSP_TIM_BASIC_H

#define _BSP_TIM_BASIC_H

 

#include "stm32f4xx_tim.h"

#include "stm32f4xx_rcc.h"

#include "misc.h"

 

extern void TIMx_Basic_Config(void);

#endif

这边编写完成后需要记得在stm32f4xx_it.c中进行中断函数的编写,其中控制LED灯亮灭便在此处被执行。


void TIM7_IRQHandler(void)

{

if (TIM_GetITStatus(TIM7,TIM_IT_Update)!=RESET) 

{

GPIO_WriteBit(GPIOC,GPIO_Pin_1,1-(GPIO_ReadOutputDataBit(GPIOC,GPIO_Pin_1)));

}  

TIM_ClearITPendingBit(TIM7,TIM_IT_Update);   

 

}

GPIO_WriteBit用于给LED灯置所想状态,在这里的最后一个参数通过GPIO_ReadOutputDataBit函数读当前的状态,通过1减去当前状态来获得相反的状态。


在main函数中只要进行简单的调用即可。


#include "stm32f4xx.h"

#include "bsp_led.h"

#include "bsp_tim_basic.h"

#include "bsp_usart.h"

int main(void)

{

 

usart1_init();

LED_GPIO_Config();

TIMx_Basic_Config();

while(1)

{

}

}


关键字:stm32f429  基本定时器  中断控制  LED灯 引用地址:stm32f429 中通过基本定时器中断控制LED灯亮一秒、灭一秒

上一篇:STM32 环境光传感器ADC采样
下一篇:stm32实现LED灯亮灭

推荐阅读

数字健康管理工具层出不穷,可到底有多少消费者买单?对试图通过技术服务改变大众健康和医疗体验的企业家和商业领袖来说,更需要深刻理解消费者的偏好。近日,风险投资基金Rock Health发布了第3次数字医疗产品消费模式数据(2017年),收集了约4000人的消费偏好,其中揭示的8大趋势或许可为业界提供参考。在讨论数据之前,需要首先明确,创新者要想顺利地...
(文章来源:中科罗伯特机器人学院) 中国电子学会最近发布的《中国机器人产业发展报告(2019)》显示,2019年,全球机器人市场规模预计将会达到294.1亿美元,从2014年到2019年的平均增长率约为12.3%。其中,只工业机器人一项就有159.2亿美元,余下的服务机器人和特种机器人分别是94.6亿美元与40.3亿美元。从显示的数据来看,机器人行业的发展进入到了黄...
9月4日消息,ColorOS官方微博宣布,将于下周一(2020年9月7日)上午10:00正式启动基于Android 11的ColorOS升级公测版限量招募,此次招募面向OPPO Find X2&OPPO Ace2用户,手持此2款机型且有意尝鲜的用户,不妨提前关注。  2020年6月11日,谷歌正式发布Android 11Beta1版本,ColorOS第一时间跟进,迅速完成大量底层适配工作,并于6月22日...
近日,《珠海市促进集成电路产业发展专项资金管理实施细则》(以下简称《实施细则》)印发。集成电路产业是珠海正在重点打造的五大千亿级产业集群之一。《实施细则》重点支持19个大方向,有效整合资源、促进集成电路产业发展,支持生产制造项目落户和增资,单个项目累计奖励最高1亿元。对入选珠海市创新创业团队的项目给予最高1亿元资助。一、支持生产制造...

史海拾趣

问答坊 | AI 解惑

关于运放正负输入,看这个图

图上显示运放是单个电源供电,参考电压是电源电压的一半,输入信号图上显示是正负的,我觉得应该有个电容串联到输入信号端才对,请分析一下。 …

查看全部问答∨

新手一定要看的学习笔记 -ARM开发

以下问题常被问到,我就想到哪说到哪吧。   一 首先说说ARM的发展     可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位。 广义的嵌入式无非几种:传统的什么51、AVR、PIC称做嵌入式微控制器 ...…

查看全部问答∨

一次维修TCD的经历(转)

自从转职做仪器维修应用以来,有很多的第一次:第一次参观GC生产车间;第一次安装调试;第一次培训客户操作;第一次更换GC电路板;第一次更换电机;第一次......今天把自己一次更换TCD热导元件的经历发布出来,和版友交流! 1.首先是检测TCD的损 ...…

查看全部问答∨

for 循环的问题

定义了一个 integer  i; always @ (posedge clk or negedge rst)     begin for (i=0;i<7;i=i+1)             begin             &n ...…

查看全部问答∨

想用S3C2440+GPS模块实现简单的GPS功能

各位老大,我的ARM开发板是FL2440,系统是WINCE 5.0,本人想DIY个车载GPS,学习学习,想问问各位老大,常用的GPS模块有哪些?电子地图是自己绘制,还是利用其他公司提供的地图。有没有免费的可用电子地图?用mapinfo可以吗? 只要能实现简单的功能就 ...…

查看全部问答∨

CE6.0加载后不能运行,串口输出如下,貌似是显示驱动或硬盘电源问题

搞了好几天了,人都要崩溃了 开机用DOS引导,loadcepc加载nk.bin 凌动z530,芯片组US15W 加载内核后,屏幕出现 Jumping to ox00226E20 然后串口开始输出调试信息 串口输出最后几行如下,貌似是显示驱动或硬盘电源问题: RdrMain: DLL_PROCESS ...…

查看全部问答∨

VC下调试GPIB驱动自带演示程序打开与之相连的仪器的电源,出现连接错误!!!

////////////////////////////////////////////////////////////////////////////////// VC下调试GPIB驱动自带演示程序打开与之相连的仪器的电源,出现连接错误!!! //////////////////////////////////////////////////////////////////////// ...…

查看全部问答∨

关于访问外部RAM的数据问题

TAB:DB 00H,01H,02H,03H 我怎么更改TAB中第二块的值? 用MOVX吗?…

查看全部问答∨

100~200价位的GSM+GPRS模块哪个性能比较稳定?广和通的怎样?

RT,现在要把以前用单片机430做的远程医疗产品移植到ARM上,想找个比较稳定的gprs模块,但不知道选择哪块,比如有 SIMcom的900b, 西门子的MC52i, 华为的MG323等等,广和通的听说性能不错,就是比较新,怕不稳定,求达人建议~~…

查看全部问答∨

MSP430G2553

今天奋斗了一个晚上终于实现了第一个程序,跟大伙分享一下喜悦! …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved