STM32中断定时,控制LED灯
2024-10-15 22:02:06
#include "led.h" void TIM3_Int_Init(u16 arr,u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //设置TIM3时钟使能 TIM_TimeBaseStructure.TIM_Period = arr; //设置重装载寄存器的周期
TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置时钟频率除数的预分频值
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上的计数模式
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //TIM3的初始化 TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //TIM3更新中断使能 NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //TIM3中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = ; //先占优先0级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = ; //从占优先3级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure); //初始化NVIC寄存器 TIM_Cmd(TIM3, ENABLE); //使能TIM3
}
//定时器3中断服务程序
void TIM3_IRQHandler(void) //TIM3中断
{
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查TIM3更新中断发生与否
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //清除TIMx更新中断标志
LED2=!LED2; //取反
}
}
#include "stm32f10x_conf.h"
#include "led.h"
#include "key.h"
#include "delay.h"
#include "timer.h"
#include "usart.h" int main(void)
{ delay_init();
LED_Init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
uart_init();
TIM3_Int_Init(,);
//((4999+1)*( 7199+1))/72=500000us=500ms 延时500ms
while()
{
LED3=!LED3;
delay_ms();
/*当数值为2000时,延时时间变快。当数值为1500以下,
延时时间为x/1000,只设了几个值。其他值都还没有尝试。
*/
} }
最新文章
- 题目1373:整数中1出现的次数(从1到n整数中1出现的次数)
- maximo功能修改笔记
- Axapta 3 COM Connector
- 真正理解KMP算法
- c标签的使用方法
- 【2】docker 与UFW
- ScreenToGif 使用教程
- FTPService工具类
- 第三节:工厂+反射+配置文件(手写IOC)对缓存进行管理。
- DEV获取GridControl当前行
- Bugku-CTF之flag.php(点了login咋没反应)
- 用R理解统计学
- 【转】在Mac OS X 10.8中配置Apache + PHP + MySQL
- Intel微处理器学习笔记(二) 三种模式
- js中的let\var\const
- .net+jquery+ashx实现客户端模拟登陆扩展
- 如何在vscode里面调试js和node.js
- object references an unsaved transient instance【异常】
- 22_CopyOnWrite容器
- java代码对按钮进行监听---------------打印出每次点击按钮的次数
热门文章
- 使用R内置函数操作数据框
- 从celery rabbitmq with docker-compose 引出对容器、依赖注入、TDD的感悟
- tomcat日志切割和定期删除
- 你的centos/linux下有多个php.ini,不确定是哪个时
- 通过修改manifest文件来解决Vista/Win7/Win8/win10下应用程序兼容性问题
- LeetCode--136--只出现一次的数字
- 20170724wdVBA正则表达式提取答案到Excel
- golang martini 源码阅读笔记之martini核心
- android--------Dagger2介绍与简单使用(一)
- hdu-5492-dp