GD32通用定时器、高级定时器PWM输出例程
通用定时器
/**********************************************************************************************************
* 函 数 名:PWMOut_LCD_BK_Init
* 功能说明:TFT背光PWM初始化
* 形 参:
* 返 回 值:
**********************************************************************************************************/
void PWMOut_LCD_BK_Init(void) //TIM4_CH2 LCD_BK-PA2
{timer_oc_parameter_struct timer_ocintpara;timer_parameter_struct timer_initpara;rcu_periph_clock_enable(RCU_GPIOA);rcu_periph_clock_enable(RCU_AF);/*Configure PA2(TIMER4 CH2) as alternate function*/gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_2);rcu_periph_clock_enable(RCU_TIMER4);timer_deinit(TIMER4);/* TIMER1 configuration */timer_initpara.prescaler = 53; //TIMER1CLK = SystemCoreClock / 54 = 2MHztimer_initpara.alignedmode = TIMER_COUNTER_EDGE;timer_initpara.counterdirection = TIMER_COUNTER_UP;timer_initpara.period = 99; // 2MHz/100=20KHz LCD背光频率20Ktimer_initpara.clockdivision = TIMER_CKDIV_DIV1;timer_initpara.repetitioncounter = 0;timer_init(TIMER4,&timer_initpara);/* CH2 configuration in PWM mode1 */timer_ocintpara.ocpolarity = TIMER_OC_POLARITY_LOW; //通道输出极性timer_ocintpara.outputstate = TIMER_CCX_ENABLE; //通道输出状态timer_ocintpara.ocidlestate = TIMER_OC_IDLE_STATE_LOW; //通道处于空闲时的输出 timer_ocintpara.ocnpolarity = TIMER_OCN_POLARITY_HIGH; //互补通道输出极性 timer_ocintpara.outputnstate = TIMER_CCXN_DISABLE; //互补通道输出状态timer_ocintpara.ocnidlestate = TIMER_OCN_IDLE_STATE_LOW; //互补通道处于空闲时的输出timer_channel_output_config(TIMER4,TIMER_CH_2,&timer_ocintpara);/* CH2 configuration in PWM mode1,duty cycle 50% */timer_channel_output_pulse_value_config(TIMER4,TIMER_CH_2,89);timer_channel_output_mode_config(TIMER4,TIMER_CH_2,TIMER_OC_MODE_PWM0);timer_channel_output_shadow_config(TIMER4,TIMER_CH_2,TIMER_OC_SHADOW_DISABLE);/* auto-reload preload enable */timer_auto_reload_shadow_enable(TIMER4);/* auto-reload preload enable */timer_enable(TIMER4);
}/**********************************************************************************************************
* 函 数 名:Set_LCD_Bk
* 功能说明:设置LCD的背光
* 形 参:pulse:背光值,取值范围:0-99,取值0关闭背光,取值99背光最亮
* 返 回 值:无
**********************************************************************************************************/
void Set_LCD_Bk(uint32_t pulse)
{TIMER_CH2CV(TIMER4) = (uint32_t)pulse;
}
高级定时器
/**********************************************************************************************************
* 函 数 名:PWM_STEP_GS_Init
* 功能说明:电机REF输出
* 形 参:
* 返 回 值:
**********************************************************************************************************/
void PWM_REF_GS_Init(void) //TIM7_CH3 SSM_REF-PC9
{timer_oc_parameter_struct timer_ocintpara;timer_parameter_struct timer_initpara;rcu_periph_clock_enable(RCU_GPIOC);rcu_periph_clock_enable(RCU_AF);rcu_periph_clock_enable(RCU_TIMER7);/*Configure PC9(TIMER7 CH3) as alternate function*/gpio_init(GPIOC, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9);timer_deinit(TIMER7);/* TIMER7 configuration */timer_initpara.prescaler = 5; //TIMER7CLK = SystemCoreClock / ( 5+1 )= 18MHztimer_initpara.alignedmode = TIMER_COUNTER_EDGE;timer_initpara.counterdirection = TIMER_COUNTER_UP;timer_initpara.period = 899; // 18MHz/(1799+1)=10KHz 周期timer_initpara.clockdivision = TIMER_CKDIV_DIV1;timer_initpara.repetitioncounter = 0;timer_init(TIMER7,&timer_initpara);/* CH2 configuration in PWM mode1 */timer_ocintpara.ocpolarity = TIMER_OC_POLARITY_LOW; //通道输出极性timer_ocintpara.outputstate = TIMER_CCX_ENABLE; //通道输出状态timer_ocintpara.ocidlestate = TIMER_OC_IDLE_STATE_LOW; //通道处于空闲时的输出 timer_ocintpara.ocnpolarity = TIMER_OCN_POLARITY_HIGH; //互补通道输出极性 timer_ocintpara.outputnstate = TIMER_CCXN_DISABLE; //互补通道输出状态timer_ocintpara.ocnidlestate = TIMER_OCN_IDLE_STATE_LOW; //互补通道处于空闲时的输出timer_channel_output_config(TIMER7,TIMER_CH_3,&timer_ocintpara);/* CH2 configuration in TOGGLE mode */timer_channel_output_pulse_value_config(TIMER7,TIMER_CH_3,99);timer_channel_output_mode_config(TIMER7,TIMER_CH_3,TIMER_OC_MODE_PWM1);timer_channel_output_shadow_config(TIMER7,TIMER_CH_3,TIMER_OC_SHADOW_DISABLE);/* TIMER7 primary output function enable 高级定时器(0和7)特有*/timer_primary_output_config(TIMER7,ENABLE);/* auto-reload preload enable */timer_auto_reload_shadow_enable(TIMER7);timer_enable(TIMER7);
}
GD32通用定时器、高级定时器PWM输出例程相关推荐
- STM32L475裸机例程学习 定时器中断和PWM输出实验
定时器中断和PWM输出实验 所以阿-笔记的重要性哇!之前看过的内容在做后面的内容涉及到了发现没有笔记,看的时间太久远,竟然全部忘记了,真是个悲伤的故事:( 那就重来吧.由于这两个实验都跟TIM定时器关 ...
- [控制基础] 定时器TIM的PWM输出+用积分思想分析PWM对直流减速有刷电机的控制(基于STM32F103+CubeMX+HAL)
目录 解决的需求 一.高级定时器TIM1/TIM8 1.时基单元 2.更新操作与更新事件 3.与其他定时器的比较 ①.与其他定时器时基单元的比较 ②.与通用定时器的比较 4.CK_INT与CK_CNT ...
- 13. GD32F103C8T6入门教程-定时器-3路pwm输出-刹车死区保护
1.gpio初始化 void gpio_config(void) {/*使能GPIOA GPIOB 时钟*/rcu_periph_clock_enable(RCU_GPIOA);rcu_periph_ ...
- 12. GD32F103C8T6入门教程-定时器-3路pwm输出
1.gpio初始化 void gpio_config(void) {/*使能GPIOA GPIOB 时钟*/rcu_periph_clock_enable(RCU_GPIOA);rcu_periph_ ...
- STM32定时器-6步PWM输出
六步PWM输出 STM32的只有两个高级定时器TIM1与TIM8才能互补输出.这里我们说的六步PWM输出要用到互补输出,所以只有TIM1与TIM8才能实现.什么是六步PWM输出?下面就来解释下.当一个 ...
- 【STM32】高级定时器、通用定时器和基本定时器---配置寄存器产生PWM
文章目录 1.高级定时器和通用定时器 2.配置产生PWM 1.高级定时器和通用定时器 高级定时器:TIM1.TIM8 Tips:黄色词条为高级定时器相对于通用定时器的功能. 通用定时器:T ...
- 高级定时器TIM1输出PWM波
高级定时器(TIM1和TIM8)相较于通用定时器,它的函数配置更多,一个都不能少,否则输出不了PWM波,所以在此写下通用定时器和高级定时器PWM波配置的区别,以记录问题. 通用定时器TIM3通道1配置 ...
- STM32入门笔记(02):定时器之定时器中断、输入捕获和PWM输出(SPL库函数版)
目录 定时器 8个定时器 定时器功能 定时器中断 常用通用定时器的寄存器 定时器中断实验目的: 定时器库函数及步骤 实验程序讲解 PWM 简介 STM32 PWM工作过程 PWM模式1 与 PWM模式 ...
- STM32定时器—PWM 输出
26.1 关于 PWM 26.1.1 PWM 介绍 PWM(Pulse Width Modulation,脉冲宽度调制).是一种利用微处理器的数字输出来对模拟电路进行控制的技术,广泛应用在测量.通信. ...
最新文章
- postfix 遇到的问题
- Linux学习之系统编程篇:ps 和 kill 命令以及父子进程间数据共享模式
- es6变量赋值重命名
- 中国还有一个作家叫格非
- 不用去验血,对照这张表,就能知道自己缺啥!千万收藏好!
- nodejs开发——require与exports的使用
- opcenum在计算机服务找不到,OPC DCOM 问题处理
- 蓝天模具风扇调速软件_联力UNI FAN SL120风扇体验:模组化拼装的风扇
- 操作实例:创建自定义 Windows PE 映像
- 终于,高考的三只靴子落下了...
- uniApp_canvas电子签字
- R语言----制作数据分布图(直方图+概率密度曲线)
- python计算三个点构成的三角形的外切圆圆心坐标及半径
- oracle 11g duplicate database基于备份复制数据库(一)
- 基于Open CV的植物图像分类识别项目
- 苹果手机测距离_重量仅6g,智能距离检测,安卓苹果平板手机都能用,声光多级提醒...
- LDO和DCDC电路的区别以及PCB设计选择
- 从erp入门说到产业互联网络
- 选择排序法和冒泡排序法
- JavaWeb开发:历史变更记录(基于SSM框架)
热门文章
- 关卡设计快速入门_1. 创建新项目
- 陈丹琦带着清华特奖学弟发布新成果:打破谷歌BERT提出的训练规律!这个庆祝方式太学神了吧...
- 60%收入来自海外,VC追着投资,这匹千里马如此回答“AI往何处去”
- 这年头,机器翻译都会通过文字脑补画面了 | NAACL 2021
- arXiv灌水机:机器自动生成论文标题、摘要信息,还有40+奇妙AI应用
- 英伟达“暴力碾压”谷歌:53分钟训练完BERT,2.2毫秒完成推理,创下NLP三项新纪录...
- Python Numpy 从文件中读取数据
- margin-top失效的解决方法
- iOS:MBProgressHUD的基本使用
- struts2类型转换器