OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2249|回复: 0

pmw控制呼吸灯,下载后灯常亮 看不出变化

[复制链接]

1

主题

1

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2020-3-22
在线时间
4 小时
发表于 2020-3-22 12:44:19 | 显示全部楼层 |阅读模式
void TIM3_Init(uint16_t psc,uint16_t arr)
{
       
        TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
        TIM_OCInitTypeDef TIM_OCInitStructure;
        GPIO_InitTypeDef GPIO_InitStructure;
       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);            //ê1ÄüTIM3ê±Öó
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);         //ê1Äüê±Öó
        GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);                              //TIM3¶Ë¿ú2¿·ÖÖØó3éä
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;                                    //¸′óÃíÆíìêä3ö
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOB,&GPIO_InitStructure);
       
        TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;
        TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;     //¶¨ê±Æ÷ÏòéϼÆêy
        TIM_TimeBaseInitStructure.TIM_Period=arr;                         //×Ô¶ˉ×°ÔØÖμ
        TIM_TimeBaseInitStructure.TIM_Prescaler=psc;                      //¶¨ê±Æ÷Ô¤·ÖÆμÏμêy
        TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure);
       
        TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;                   //PWMÄ£ê½2
        TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
        TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
  TIM_OC2Init(TIM3,&TIM_OCInitStructure);
       
        //TIM_ARRPreloadConfig(TIM3,ENABLE);
        TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);                   //ê1ÄüÔ¤×°ÔØ¼Ä′æÆ÷
        TIM_Cmd(TIM3,ENABLE);                                            //ê1Äü¶¨ê±Æ÷3

}
int main(void)
{
        uint16_t pwmval=0;
        uint16_t dir=1;
        TIM3_Init(0,899);          //ÆμÂê£o72MHz/899+1    2»·ÖÆμ      èç1û·ÖÆμÏμêyÎa1    ê±Öó×üÏßéÏμÄê±ÖóÎa36MHz
        while(1)
        {
                delayms(100);
                if(dir==1)
                {
                        pwmval++;
                }
                else
                {
                        pwmval--;
                }
                if(pwmval>500)
                {
                        dir=0;
                }
                if(pwmval==0)
                {
                        dir=1;
                }
       
                TIM_SetCompare2(TIM3,pwmval);
        }

}
下载后灯常亮   看不出变化 用的是stm32f103vet6


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-23 05:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表