嵌出式学习的一天

目前的想法是直接过一遍视频,然后再码一下代码,熟悉一下,百炼成金!!!!!

定时器中断实验

时钟的选择:

1.内部时钟

2.外部时钟模式1:外部输入脚(TIX)

3.外部时钟模式2:外部触发输入(ETR)

4.内部触发输入itrx:使用一i个定时器作为另一个定时器的预分频器

除非APB1的分频系数是1,否则通用定时器的时钟等于APB1的时钟的2倍

bash 复制代码
/*
定时器中断实现步骤
1.定时器时钟使能
2.初始化定时器,配置ARR.PSC
3.开启定时器中断,配置NVIC
4.使能定时器
6.编写中断服务函数


产生现象如下:
通过定时器配置,每500ms中断一次,然后中断服务函数中控制LED实现LED1状态取反(闪烁)



*/
#include "time.h"
#include "led.h"
void TIM3_Int_Init(u16 arr,u16 psc){


TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
NVIC_InitTypeDef NVIC_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
TIM_TimeBaseInitStructure.TIM_Period=arr;
TIM_TimeBaseInitStructure.TIM_Prescaler=psc;
TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;//向上计数模式
TIM_TimeBaseInitStructure.TIM_ClockDivision=  TIM_CKD_DIV1;
  
TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure);



TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);


  
  //中断优先级nvic配置
  
NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //TIM3 中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //先占优先级 0 级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //从优先级 3 级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ 通道被使能
NVIC_Init(&NVIC_InitStructure); //④初始化 NVIC 寄存器
TIM_Cmd(TIM3, ENABLE); 
}
//定时器中断服务函数
void TIM3_IRQHandler(void){

if(TIM_GetITStatus(TIM3,TIM_IT_Update)!=RESET){

LED1=!LED1;
TIM_ClearITPendingBit(TIM3,TIM_IT_Update);

}

}
bash 复制代码
 int main(void)
 {	
delay_init(); //延时函数初始化 
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置 NVIC 中断分组 2
LED_Init(); //LED 初始化
TIM3_Int_Init(4999,7199);//500ms
 while(1){
   LED0=!LED0;
   delay_ms(200);   
   }
相关推荐
CODECOLLECT6 小时前
京元 I62D Windows PDA 技术拆解:Windows 10 IoT 兼容 + 硬解码模块,如何降低工业软件迁移成本?
stm32·单片机·嵌入式硬件
wdfk_prog6 小时前
[Linux]学习笔记系列 -- [drivers][input]serio
linux·笔记·学习
BackCatK Chen6 小时前
STM32+FreeRTOS:嵌入式开发的黄金搭档,未来十年就靠它了!
stm32·单片机·嵌入式硬件·freertos·低功耗·rtdbs·工业控制
ZH15455891318 小时前
Flutter for OpenHarmony Python学习助手实战:GUI桌面应用开发的实现
python·学习·flutter
编程小白20268 小时前
从 C++ 基础到效率翻倍:Qt 开发环境搭建与Windows 神级快捷键指南
开发语言·c++·windows·qt·学习
学历真的很重要8 小时前
【系统架构师】第二章 操作系统知识 - 第二部分:进程与线程(补充版)
学习·职场和发展·系统架构·系统架构师
深蓝海拓8 小时前
PySide6,QCoreApplication::aboutToQuit与QtQore.qAddPostRoutine:退出前后的清理工作
笔记·python·qt·学习·pyqt
酒鼎8 小时前
学习笔记(3)HTML5新特性(第2章)
笔记·学习·html5
L***一9 小时前
2026届大专跨境电商专业毕业生就业能力提升路径探析
学习
.小墨迹9 小时前
apollo学习之借道超车的速度规划
linux·c++·学习·算法·ubuntu