GD32篇 二、GD32TIMER输出PWM

GD32篇 记录

一、GD32开发版程序设置读保护,防止程序被读取

二、GD32TIMER输出PWM


前言

一、GD32F103 的TIMER特点

可以在中文手册里面找到相关的资料
在这里插入图片描述
在这里插入图片描述

二、通用定时器 L0(TIMERx, x=1,2,3,4)

简介

通用定时器L0(定时器1/2/3/4)是4通道定时器,支持输入捕获,输出比较,产生PWM信号控
制电机和电源管理。通用定时器L0计数器是16位无符号计数器。
通用定时器L0是可编程的,可以被用来计数,其外部事件可以驱动其他定时器。
定时器和定时器之间是相互独立,但是他们可以被同步在一起形成一个更大的定时器,这些定
时器的计数器一致地增加。

2.主要特征

 总通道数:4;  计数器宽度:16位;
 时钟源可选:内部时钟,内部触发,外部输入,外部触发;
 多种计数模式:向上计数,向下计数和中央对齐计数;
 正交编码器接口:被用来追踪运动和分辨旋转方向和位置;
 霍尔传感器接口:用来做三相电机控制;
 可编程的预分频器:16位,运行时可以被改变;
 每个通道可配置:输入捕获模式,输出比较模式,可编程的PWM模式,单脉冲模式;
 自动重装载功能;
 中断输出和DMA请求:更新事件,触发事件,比较/捕获事件;
 多个定时器的菊型链接使得一个定时器可以同时启动多个定时器;
 定时器的同步允许被选择的定时器在同一个时钟周期开始计数;
 定时器主/从模式控制器。


三、输出比较模式

在输出比较模式,TIMERx可以产生时控脉冲,其位置,极性,持续时间和频率都是可编程的。
当一个输出通道的CxCV寄存器与计数器的值匹配时,根据CHxCOMCTL的配置,这个通道的
输出可以被置高电平,被置低电平或者反转。当计数器的值与CxCV寄存器的值匹配时,CHxIF
位被置1,如果CHxIE = 1则会产生中断,如果CxCDE=1则会产生DMA请求。

配置步骤如下:

第一步:时钟配置:
配置定时器时钟源,预分频器等。

第二步:比较模式配置:
设置CHxCOMSEN位来配置输出比较影子寄存器;
设置CHxCOMCTL位来配置输出模式(置高电平/置低电平/反转);
设置CHxP/CHxNP位来选择有效电平的极性;
设置CHxEN使能输出。

第三步:通过CHxIE/CxCDE位配置中断/DMA请求使能。

第四步:通过TIMERx_CAR寄存器和TIMERx_CHxCV寄存器配置输出比较时基:
CxCV可以在运行时根据你所期望的波形而改变。

第五步:设置CEN位使能定时器。

代码如下:

void timer_config(void)
{
   
   
    rcu_periph_clock_enable(RCU_GPIOA)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值