欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

     找回密碼
     立即注冊

    QQ登錄

    只需一步,快速開始

    搜索
    查看: 5654|回復(fù): 2
    收起左側(cè)

    STM32F1互補(bǔ)PWM

    [復(fù)制鏈接]
    ID:195946 發(fā)表于 2017-8-3 21:34 | 顯示全部樓層 |閱讀模式
    void PWM_GPIO_Config(void)
    {
      GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);//使能GPIO時(shí)鐘
        //正極性輸出引腳PA.8-->TIM1_CH1,PA.9-->TIM1_CH2,PA.10-->TIM1_CH2
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10;    //PA8 PA11
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;        //復(fù)用推挽輸出
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;   
        GPIO_Init(GPIOA,&GPIO_InitStructure);                //使能GPIOA
        //反極性輸出引腳PB.13-->TIM1_CH1N,PB.14-->TIM1_CH2N,PB.15-->TIM1_CH3N
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;    //PA8 PA11
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;        //復(fù)用推挽輸出
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;   
        GPIO_Init(GPIOB,&GPIO_InitStructure);                //使能GPIOB
    }
    /***************************************************************
    *    Function     :    TIMx_PWM_Init
    *    Description :    PWM初始化
    *    Input           :    None
    *    Output        :    None
    *    Return        :    None
    *   Declaration  :   定時(shí)器的初始化
    ****************************************************************/
    void PWM_TIMx_Init(uint16_t arr,uint16_t psc)
    {
        TIM_OCInitTypeDef TIM_OCInitStructure;
        TIM_BDTRInitTypeDef TIM_BDTRInitStructure;
        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);
        TIM_DeInit(TIM1);                                                                                            //定時(shí)器1復(fù)位
        /*定時(shí)器1初始化*/
        TIM_TimeBaseStructure.TIM_Period=arr;                                                  //自動(dòng)重裝載值
        TIM_TimeBaseStructure.TIM_Prescaler=psc;                                             //預(yù)分頻系數(shù)
        TIM_TimeBaseStructure.TIM_ClockDivision=0X00;                                     //設(shè)置時(shí)鐘分割TDTS==tck_Tim
        TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;            //向上計(jì)數(shù)模式
        TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
        TIM_ARRPreloadConfig(TIM1,DISABLE);                                                        //禁止ARR預(yù)裝緩沖器
        /*雙路互補(bǔ)PWM初始化*/
        TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;                                //TIM_OCMode_PWM1
        TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;         //正極性輸出使能
        TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNState_Enable;    //互補(bǔ)極性輸出使能
        TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;                //PWM輸出極性
        TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCPolarity_High;              //PWM互補(bǔ)極性
        TIM_OCInitStructure.TIM_Pulse=450;                                                     //占空比
        TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Set;              //死區(qū)后輸出狀態(tài)
        TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCIdleState_Reset;        //死區(qū)后互補(bǔ)極性輸出狀態(tài)
        //初始化3路正極性PWM:PA.8,PA.9,PA.10
        TIM_OC1Init(TIM1,&TIM_OCInitStructure);
        TIM_OCInitStructure.TIM_Pulse=350;
        TIM_OC2Init(TIM1,&TIM_OCInitStructure);
        TIM_OCInitStructure.TIM_Pulse=250;
        TIM_OC3Init(TIM1,&TIM_OCInitStructure);
        //配置3路正極性PWM
        //TIM_OC1PolarityConfig(TIM1,TIM_OCPreload_Enable);//PWM通道1預(yù)裝載使能
        //TIM_OC2PolarityConfig(TIM1,TIM_OCPreload_Enable);//PWM通道2預(yù)裝載使能
        //TIM_OC3PolarityConfig(TIM1,TIM_OCPreload_Enable);//PWM通道3預(yù)裝載使能
       
        //死區(qū)和剎車配置功能僅僅對TIM1和TIM8高級(jí)定時(shí)器有效
        TIM_BDTRInitStructure.TIM_OSSIState=TIM_OSSIState_Enable;                //空閑模式下的輸出使能
        TIM_BDTRInitStructure.TIM_OSSRState=TIM_OSSRState_Enable;                //運(yùn)行模式下的輸出使能
        TIM_BDTRInitStructure.TIM_LOCKLevel=TIM_LOCKLevel_OFF;                    //鎖定設(shè)置
        TIM_BDTRInitStructure.TIM_DeadTime=0X00;                                                //設(shè)置死區(qū)時(shí)間2us
        TIM_BDTRInitStructure.TIM_Break=TIM_Break_Disable;                            //剎車功能關(guān)閉
        TIM_BDTRInitStructure.TIM_BreakPolarity=TIM_BreakPolarity_Low;    //剎車輸入極性
        TIM_BDTRInitStructure.TIM_AutomaticOutput=TIM_AutomaticOutput_Disable;//關(guān)閉自動(dòng)輸出使能
        TIM_BDTRConfig(TIM1,&TIM_BDTRInitStructure);
        //高級(jí)定時(shí)器的輸出控制使能剎車MOE主輸出使能
        TIM_CtrlPWMOutputs(TIM1,ENABLE);        
        TIM_ARRPreloadConfig(TIM1,ENABLE);   
        //定時(shí)器使能   
        TIM_Cmd(TIM1,ENABLE);            
    }
    STM32F103C8T6 IOPA.8 PA.9 PA.10 PB.13 PB.14 PB.15
    注釋這三句后:波形
             //TIM_OC1PolarityConfig(TIM1,TIM_OCPreload_Enable);//PWM通道1預(yù)裝載使能
             //TIM_OC2PolarityConfig(TIM1,TIM_OCPreload_Enable);//PWM通道2預(yù)裝載使能
             //TIM_OC3PolarityConfig(TIM1,TIM_OCPreload_Enable);//PWM通道3預(yù)裝載使能
    未注釋的波形:
             TIM_OC1PolarityConfig(TIM1,TIM_OCPreload_Enable);//PWM通道1預(yù)裝載使能
             TIM_OC2PolarityConfig(TIM1,TIM_OCPreload_Enable);//PWM通道2預(yù)裝載使能
             TIM_OC3PolarityConfig(TIM1,TIM_OCPreload_Enable);//PWM通道3預(yù)裝載使能

    未注釋的仿真波形
    1.png

    注釋后仿真波形
    2.png
    回復(fù)

    使用道具 舉報(bào)

    ID:493103 發(fā)表于 2019-3-18 12:22 | 顯示全部樓層
    請教樓主,這個(gè)仿真是怎么弄得,有的啥軟件?謝謝
    回復(fù)

    使用道具 舉報(bào)

    ID:410139 發(fā)表于 2019-3-28 21:23 | 顯示全部樓層
    保存了,不久就可以用上,謝謝樓主
    回復(fù)

    使用道具 舉報(bào)

    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規(guī)則

    小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

    Powered by 單片機(jī)教程網(wǎng)

    快速回復(fù) 返回頂部 返回列表