通用定时器

/**********************************************************************************************************
*   函 数 名: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输出例程相关推荐

  1. STM32L475裸机例程学习 定时器中断和PWM输出实验

    定时器中断和PWM输出实验 所以阿-笔记的重要性哇!之前看过的内容在做后面的内容涉及到了发现没有笔记,看的时间太久远,竟然全部忘记了,真是个悲伤的故事:( 那就重来吧.由于这两个实验都跟TIM定时器关 ...

  2. [控制基础] 定时器TIM的PWM输出+用积分思想分析PWM对直流减速有刷电机的控制(基于STM32F103+CubeMX+HAL)

    目录 解决的需求 一.高级定时器TIM1/TIM8 1.时基单元 2.更新操作与更新事件 3.与其他定时器的比较 ①.与其他定时器时基单元的比较 ②.与通用定时器的比较 4.CK_INT与CK_CNT ...

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

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

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

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

  5. STM32定时器-6步PWM输出

    六步PWM输出 STM32的只有两个高级定时器TIM1与TIM8才能互补输出.这里我们说的六步PWM输出要用到互补输出,所以只有TIM1与TIM8才能实现.什么是六步PWM输出?下面就来解释下.当一个 ...

  6. 【STM32】高级定时器、通用定时器和基本定时器---配置寄存器产生PWM

    文章目录 1.高级定时器和通用定时器 2.配置产生PWM 1.高级定时器和通用定时器   高级定时器:TIM1.TIM8   Tips:黄色词条为高级定时器相对于通用定时器的功能.   通用定时器:T ...

  7. 高级定时器TIM1输出PWM波

    高级定时器(TIM1和TIM8)相较于通用定时器,它的函数配置更多,一个都不能少,否则输出不了PWM波,所以在此写下通用定时器和高级定时器PWM波配置的区别,以记录问题. 通用定时器TIM3通道1配置 ...

  8. STM32入门笔记(02):定时器之定时器中断、输入捕获和PWM输出(SPL库函数版)

    目录 定时器 8个定时器 定时器功能 定时器中断 常用通用定时器的寄存器 定时器中断实验目的: 定时器库函数及步骤 实验程序讲解 PWM 简介 STM32 PWM工作过程 PWM模式1 与 PWM模式 ...

  9. STM32定时器—PWM 输出

    26.1 关于 PWM 26.1.1 PWM 介绍 PWM(Pulse Width Modulation,脉冲宽度调制).是一种利用微处理器的数字输出来对模拟电路进行控制的技术,广泛应用在测量.通信. ...

最新文章

  1. postfix 遇到的问题
  2. Linux学习之系统编程篇:ps 和 kill 命令以及父子进程间数据共享模式
  3. es6变量赋值重命名
  4. 中国还有一个作家叫格非
  5. 不用去验血,对照这张表,就能知道自己缺啥!千万收藏好!
  6. nodejs开发——require与exports的使用
  7. opcenum在计算机服务找不到,OPC DCOM 问题处理
  8. 蓝天模具风扇调速软件_联力UNI FAN SL120风扇体验:模组化拼装的风扇
  9. 操作实例:创建自定义 Windows PE 映像
  10. 终于,高考的三只靴子落下了...
  11. uniApp_canvas电子签字
  12. R语言----制作数据分布图(直方图+概率密度曲线)
  13. python计算三个点构成的三角形的外切圆圆心坐标及半径
  14. oracle 11g duplicate database基于备份复制数据库(一)
  15. 基于Open CV的植物图像分类识别项目
  16. 苹果手机测距离_重量仅6g,智能距离检测,安卓苹果平板手机都能用,声光多级提醒...
  17. LDO和DCDC电路的区别以及PCB设计选择
  18. 从erp入门说到产业互联网络
  19. 选择排序法和冒泡排序法
  20. JavaWeb开发:历史变更记录(基于SSM框架)

热门文章

  1. 关卡设计快速入门_1. 创建新项目
  2. 陈丹琦带着清华特奖学弟发布新成果:打破谷歌BERT提出的训练规律!这个庆祝方式太学神了吧...
  3. 60%收入来自海外,VC追着投资,这匹千里马如此回答“AI往何处去”
  4. 这年头,机器翻译都会通过文字脑补画面了 | NAACL 2021
  5. arXiv灌水机:机器自动生成论文标题、摘要信息,还有40+奇妙AI应用
  6. 英伟达“暴力碾压”谷歌:53分钟训练完BERT,2.2毫秒完成推理,创下NLP三项新纪录...
  7. Python Numpy 从文件中读取数据
  8. margin-top失效的解决方法
  9. iOS:MBProgressHUD的基本使用
  10. struts2类型转换器