嵌出式学习的一天

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

定时器中断实验

时钟的选择:
1.内部时钟
2.外部时钟模式1:外部输入脚(TIX)
3.外部时钟模式2:外部触发输入(ETR)
4.内部触发输入itrx:使用一i个定时器作为另一个定时器的预分频器

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

/*
定时器中断实现步骤
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);

}

}
 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);   
   }

相关推荐

  1. 学习

    2024-01-11 06:26:03       51 阅读
  2. ------001

    2024-01-11 06:26:03       45 阅读
  3. 008

    2024-01-11 06:26:03       40 阅读
  4. 学习Android第十

    2024-01-11 06:26:03       51 阅读
  5. 嵌入学习第一

    2024-01-11 06:26:03       62 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-11 06:26:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-11 06:26:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-11 06:26:03       82 阅读
  4. Python语言-面向对象

    2024-01-11 06:26:03       91 阅读

热门阅读

  1. 润滑油元宇宙:探索未来润滑科技的新视界

    2024-01-11 06:26:03       60 阅读
  2. 第二百五十七回

    2024-01-11 06:26:03       54 阅读
  3. Git常用命令和QA(网摘)

    2024-01-11 06:26:03       49 阅读
  4. Git基础指令4.0

    2024-01-11 06:26:03       53 阅读
  5. docker-compose

    2024-01-11 06:26:03       51 阅读
  6. hive sql 和 spark sql的区别

    2024-01-11 06:26:03       48 阅读
  7. GoLang:sql.Exec()报错

    2024-01-11 06:26:03       59 阅读
  8. 使用Spring Boot集成中间件:基础篇

    2024-01-11 06:26:03       45 阅读
  9. Linux踢掉远程用户

    2024-01-11 06:26:03       49 阅读
  10. arm64上面运行armhf程序

    2024-01-11 06:26:03       64 阅读
  11. Hadoop之mapreduce参数大全-5

    2024-01-11 06:26:03       41 阅读
  12. Hadoop之mapreduce参数大全-6

    2024-01-11 06:26:03       46 阅读
  13. windows配置电脑网络ip地加的方法

    2024-01-11 06:26:03       54 阅读