当前位置: 首页 > web >正文

GD32入门到实战20--定时器

GD32F303ZET6为例

我们看芯片的数据手册可以知道定时器0~13都可以配置为120Mhz的主频

我们新建timing文件编写定时器的代码timing_drv.c

#include <stdio.h>  
#include "gd32f30x.h"
#include "led_drv.h"static void TimerInit(uint32_t periodUs)
{timer_parameter_struct timerInitPara;timer_struct_para_init(&timerInitPara);//给定时器结构体赋初值/*使能定时器时钟*/rcu_periph_clock_enable(RCU_TIMER0);//定时器0/*复位定时器*/timer_deinit(TIMER0);/*设置预分频*/timerInitPara.prescaler = 120 - 1;//时钟频率为1Mhz,周期为1us/*设置自动重装载值*/timerInitPara.period = periodUs - 1;/*初始化定时器*/timer_init(TIMER0,&timerInitPara);/*使能定时器的计数更新中断*/timer_interrupt_enable(TIMER0,TIMER_INT_UP);//向上计数到预设值产生中断/*使能定时器中断优先级*/nvic_irq_enable(TIMER0_UP_IRQn, 0, 0);/*使能定时器*/timer_enable(TIMER0);
}void TIMER0_UP_IRQnHandler(void)
{if(timer_interrupt_flag_get(TIMER0 , TIMER_INT_FLAG_UP) == SET)//判断是否产生中断{timer_interrupt_flag_clear(TIMER0 , TIMER_INT_FLAG_UP);//清除中断标志位ToggleLed(LED1);//翻转led1电平}
}void TimingDrvInit()
{TimerInit(1000);
}

timing_drv.h

#ifndef _TIMING_DRV_H_
#define _TIMING_DRV_H_void TimingDrvInit();#endif

http://www.xdnf.cn/news/19399.html

相关文章:

  • 【LeetCode】大厂面试算法真题回忆(122) —— 篮球比赛
  • react性能优化有哪些
  • SSR降级CSR:高可用容灾方案详解
  • Android中handler机制
  • 【Android】JSONObject和Gson的使用
  • HTTP的概念、原理、工作机制、数据格式和REST
  • 《C++——makefile》
  • 三重积分的性质
  • 【MATLAB绘图进阶教程】(2-6)动态绘图制作详解与例程,包括drawnow、pause、getframe、video write等命令
  • 机器学习时间序列算法进行随机划分数据是不合适的!
  • Dify1.8.0最新版本安装教程:Ubuntu25.04系统本地化安装部署Dify详细教程
  • 移动零,leetCode热题100,C++实现
  • IP-Guard支持修改安全区域密级文字和密级级数
  • 嵌入式学习日记(38)HTTP
  • Java学习笔记-多线程基础
  • Kafka 4.0 生产者配置全解析与实战调优
  • Go语言流式输出实战:构建高性能实时应用
  • 数据结构(力扣刷题)
  • 蜂窝通信模组OpenCPU的介绍
  • REST-assured获取响应数据详解
  • 手写链路追踪优化-自动全局追踪代替局部手动追踪
  • 做一个实用的节假日工具
  • Java面试-spring boot框架
  • 98、23种设计模式之代理模式(7/23)
  • 【SpringMVC】SSM框架【二】——SpringMVC超详细
  • ModuleNotFoundError: No module named ‘cairosvg‘
  • 浔川社团阅读量破历史记录
  • 得物25年春招-安卓部分编程题
  • GD32入门到实战21--输入捕获
  • 【C++】日期类实现详解:代码解析与复用优化