zoukankan      html  css  js  c++  java
  • PWM输出,呼吸灯

    一、初始化GPIO

    使用PB1,查芯片手册对应TIM3_CH4

            GPIO_InitTypeDef GPIO_InitStructure;
            RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
            RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
    
            
            GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
            GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
            GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
            
            GPIO_Init(GPIOB, &GPIO_InitStructure);

    二、初始化TIM和PWM

       TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
        TIM_OCInitTypeDef TIM_OCInitStructure;
    
        /* 周期1000 */
        TIM_TimeBaseStructure.TIM_Period = 999;
        /* 定时器时间间隔1微秒 */
        TIM_TimeBaseStructure.TIM_Prescaler = 0;
        TIM_TimeBaseStructure.TIM_ClockDivision = 0;
        /* 向上计数 */
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
        /* 配置 */
        TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
        
        /* 选择PWM1模式 */
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
        /* 允许输出模式 */
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;    
        /* 匹配值 */
        TIM_OCInitStructure.TIM_Pulse = 1000;    
        /* 设置小于匹配值时为高电平 */
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
        /* 使能通道1 */
        TIM_OC4Init(TIM3, &TIM_OCInitStructure);    
        
        TIM_OC4PreloadConfig(TIM3, TIM_OCPreload_Enable);
        TIM_ARRPreloadConfig(TIM3, ENABLE);
        TIM_Cmd(TIM3, ENABLE); 

    三、main函数部分

    通过修改CCRx寄存器,改变占空比。从而调整电流大小

         while(1)
        {
                if(CCR3_Val >=0 && CCR3_Val <= 1000)
                {
                    CCR3_Val -= 50;
                    Delay(1);
                }
                else
                {
                    CCR3_Val = 1000;
                    Delay(1);
                }
                TIM3->CCR4 = CCR3_Val;
                Delay(1);
        }


    无欲速,无见小利。欲速,则不达;见小利,则大事不成。
  • 相关阅读:
    pwnable.kr之input
    pwnable.kr之bof
    pwnable.kr之fd
    运维及服务器组成详解
    查看锁信息(开启InnoDB监控)
    【原创】记一次MySQL大表高并发写入引发CPU飙升的排障过程
    【原创】获取MySQL crash 时的core file
    【原创】MySQL Replay线上流量压测工具
    python面向对象
    TCP三次握手与四次挥手
  • 原文地址:https://www.cnblogs.com/ch122633/p/7363256.html
Copyright © 2011-2022 走看看