1.定时器的基本初始化

/*定时器的基本初始化和打开更新中断enable: 是否使能定时器
*/
void time_base_init(int enable)
{/*定时器结构*/timer_parameter_struct timer_initpara;//开启定时器时钟rcu_periph_clock_enable(RCU_TIMER0);//结构体复位初始化timer_deinit(TIMER0);/* 初始化定时器结构体 每秒产生一次中断*/timer_struct_para_init(&timer_initpara);/* TIMER1 configuration */timer_initpara.prescaler         = 10800-1;//定时器的时钟频率是108MHztimer_initpara.alignedmode       = TIMER_COUNTER_EDGE;//timer_initpara.counterdirection  = TIMER_COUNTER_UP;//向上计数timer_initpara.period            = 10000-1;//重载值timer_initpara.clockdivision     = TIMER_CKDIV_DIV1; //不分频timer_initpara.repetitioncounter = 0;//重复计数timer_init(TIMER0, &timer_initpara);if(enable)timer_enable(TIMER0);//使能定时器elsetimer_disable(TIMER0);//失能定时器
}

2. 定时器的中断开启

/*使能定时器的更新中断
*/
void enable_it()
{//1. 清除更新中断标记timer_interrupt_flag_clear(TIMER0, TIMER_INT_FLAG_UP);//2.中断更新中断使能timer_interrupt_enable(TIMER0, TIMER_INT_UP);//使能中断并设置优先级nvic_irq_enable(TIMER0_UP_IRQn, 1, 1);
}

3. 定义中断服务函数

定时器TIM0有多重中断类型

     TIMER0_BRK_IRQn              = 24,     /*!< TIMER0 break interrupts                                  */TIMER0_UP_IRQn               = 25,     /*!< TIMER0 update interrupts 更新中断                                */TIMER0_TRG_CMT_IRQn          = 26,     /*!< TIMER0 trigger and commutation interrupts   触发中断             */TIMER0_Channel_IRQn          = 27,     /*!< TIMER0 channel capture compare interrupts   外部输入或输出捕获中断              */

/*中断服务函数
*/
void TIMER0_UP_IRQHandler(void)
{if(SET == timer_interrupt_flag_get(TIMER0, TIMER_INT_FLAG_UP)){/* 清除更新中断标志 */timer_interrupt_flag_clear(TIMER0, TIMER_INT_FLAG_UP);//闪烁LEDLED1=!LED1;}
}

4. 测试调用


#include "gd32f10x.h"
#include "systick.h"
#include <stdio.h>
#include "main.h"
#include "string.h"
#include "bsp_uart.h"
#include "bsp_timer.h"
#include "gd32f103c_sys.h"#define LED0 PBout(13)
#define LED1 PBout(14)
#define LED2 PBout(15)
#define LED3 PAout(8)
int main(void)
{/* 配置系统时钟 */  systick_config();//设置中断分组nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2);/* gpio时钟使能*/rcu_periph_clock_enable(RCU_GPIOB);rcu_periph_clock_enable(RCU_GPIOA);// LED gpio 初始化gpio_init(GPIOB,GPIO_MODE_OUT_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);gpio_init(GPIOA,GPIO_MODE_OUT_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_8);//串口初始化usart_config();time_base_init(1);enable_it();while(1){delay_1ms(500);LED0=!LED0;printf("hello gd32\r\n");}
}

6.GD32F103C8T6 定时器的基本使用相关推荐

  1. 10. GD32F103C8T6 定时器-测量pwm的占空比和频率

    一. 利用TIM2的输入通道0,通道1测量pwm的占空比和频率 1. 配置gpio void inpit_gpio_config(void) {rcu_periph_clock_enable(RCU_ ...

  2. 7. GD32F103C8T6 定时器 pwm输出

    实现LED的逐渐亮灭 1. 定时器TIM0基本初始化 /*定时器的基本初始化和打开更新中断enable: 是否使能定时器 */ void time_base_init(int enable) {/*定 ...

  3. 8. GD32F103C8T6 定时器-输入捕获测频率

    1采集方波频率 /*-----------------------输入捕获----------------------------*/void gpio_configuration(void) {/* ...

  4. 9. GD32F103C8T6 定时器2的更新中断触发定时器0开始计时

    1. 初始化定时器TIM0 /*定时器的基本初始化和打开更新中断enable: 是否使能定时器 */ static void time_base_init(int enable) {/*定时器结构*/ ...

  5. 14. GD32F103C8T6入门教程-Systick定时器

    1.简介 Cortex‐M3 处理器内部包含了一个简单的定时器.因为所有的 CM3 芯片都带有这个定时器,软件在不同 CM3 器件间的移植工作得以化简.该定时器的时钟源可以是内部时钟,或者是外部时钟. ...

  6. 13. GD32F103C8T6入门教程-定时器-3路pwm输出-刹车死区保护

    1.gpio初始化 void gpio_config(void) {/*使能GPIOA GPIOB 时钟*/rcu_periph_clock_enable(RCU_GPIOA);rcu_periph_ ...

  7. 12. GD32F103C8T6入门教程-定时器-3路pwm输出

    1.gpio初始化 void gpio_config(void) {/*使能GPIOA GPIOB 时钟*/rcu_periph_clock_enable(RCU_GPIOA);rcu_periph_ ...

  8. 初试GD32F103C8T6

    初试GD32F103C8T6 一.电路板功能: 1.GPIO直驱4位共阳数码管 2.ADC+DMA采集2路电压信号 3.CAN通讯 4.LED指示灯 5.串口1通讯 6.定时器TIM2 二.使用STM ...

  9. 一文吃透JAVA定时器格式

    JAVA 定时器时间格式 ​ 基本格式: [秒]  [分]  [小时]  [日]  [月]  [周]   [年] 序号 说明 是否必填 允许填写的值 允许使用的通配符 1 秒 是 0-59 ,   - ...

最新文章

  1. Visual Studio2017 安装教程(走过的坑绝不再走)
  2. 使用HMSegmentedControl实现分段控件
  3. overleaf服务端_部署私有在线Latex编辑器:Overleaf/sharelatex,写毕设神器
  4. SSD: Signle Shot Detector 用于自然场景文字检测
  5. 使用JMSTester对JMS层进行基准测试
  6. 「Python 编程」编码实现网络请求库中的 URL 解析器
  7. 云图说|SAP技术画册“一点通”
  8. 【转】“你不适合做程序员”
  9. HeroKu PaaS模式
  10. windows2008 服务器时间格式改不过来_我用VNPY 1天时间搭建自主量化交易(程序化交易)平台...
  11. 在Android中查看和管理sqlite数据库
  12. 使用axure9绘制三级导航
  13. MATLAB图像去雾算法RETINEX实现
  14. 智能数据中心和智慧园区:华为的单点突破与全局效应
  15. C#针式打印机自定义纸张连续打印爬坑过程
  16. springsecurity与gateway网关整合配置
  17. 【HTML基础-1】HTML标签简介及常用标签
  18. 写给还在迷茫中的朋友,一名6年程序员的工作感悟!!!
  19. 从输入 URL 开始,聊一聊浏览器、网络等相关的知识
  20. 应用回归分析(何晓群)CH2、CH3例题、习题

热门文章

  1. ubuntu保存_Arch与Ubuntu安装软件对比
  2. 推销计算机英语作文,如何自我推销英语作文
  3. fastapi学习(一):输出hello world与基本运行方法
  4. pdfplumber解析pdf文件
  5. 服务器找不到硬盘如何解决方案,Linux云服务器磁盘不见了?解决方案在这里
  6. mvn创建flink项目
  7. Java并发包——使用新的方式创建线程
  8. 元素位置及宽度的计算总节
  9. Codeforces340B Maximal Area Quadrilateral
  10. JavaScript判断访问终端