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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2428|回復: 4
收起左側

求指導 STM32F407的PB8 舵機電源mos控制,輸出pwm 1%占空比

[復制鏈接]
ID:809754 發表于 2021-6-10 16:54 | 顯示全部樓層 |閱讀模式
由于本論壇禁止直接求程序,禁止伸手黨,所以向大家請教一下大致的實現方法與思路,理清頭緒后我自己來寫程序去實現,謝謝大家

輸出頻率,占空比可以達到緩慢上升
12V電壓的目的

請求支援!!
回復

使用道具 舉報

ID:809754 發表于 2021-6-10 17:01 | 顯示全部樓層
pwm已經配置了 ,占空比不會設置
回復

使用道具 舉報

ID:809754 發表于 2021-6-10 17:03 | 顯示全部樓層
pwm已經配置好了,但是那個占空比不知道怎么弄
回復

使用道具 舉報

ID:809754 發表于 2021-6-10 17:10 | 顯示全部樓層
求大神給點思路,我已經配置好了pwm
回復

使用道具 舉報

5#
無效樓層,該帖已經被刪除
6#
無效樓層,該帖已經被刪除
ID:809754 發表于 2021-6-11 16:05 | 顯示全部樓層
void PWM_TIM14_INIT(void)
{

        GPIO_InitTypeDef  GPIO_InitStructure;            //GPIO結構體設置
    TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;  //定時器4結構體設置
    TIM_OCInitTypeDef TIM_OCInitStruct;              //定時器PWM結構體設置

    //使能時鐘
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;          // 在PB8引腳
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;       //初始化的復用功能(因為本引腳還要用到PWM輸出功能)
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
    //復用映射到定時器4
    GPIO_PinAFConfig(GPIOB,GPIO_PinSource8,GPIO_AF_TIM4);

    //定時器4的配置
    TIM_TimeBaseInitStruct.TIM_Period=1000-1; //重裝載
        TIM_TimeBaseInitStruct.TIM_Prescaler=8400-1; //預分頻
        TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;//向上計數
        TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1; //不分頻
        TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStruct);

        TIM_OCInitStruct.TIM_OCMode=TIM_OCMode_PWM1; //PWM模式1,TIMx_CNT<TIMx_CCR1時為有效電平
        TIM_OCInitStruct.TIM_OCPolarity=TIM_OCPolarity_High; //輸出極性為高
        TIM_OCInitStruct.TIM_OutputState=TIM_OutputState_Enable; //比較輸出使能
        TIM_OCInitStruct.TIM_Pulse=0; //設置比較寄存器的初值
        TIM_OC1Init(TIM4,&TIM_OCInitStruct);

        TIM_OC3PreloadConfig(TIM4,TIM_OCPreload_Enable); //使能預裝載寄存器;
        TIM_Cmd(TIM4,ENABLE);
               
}

/******************************************
*PB8定時器通道TIM4_CH3、TIM10_CH1(通用定時器)
*F407時鐘頻率=168MHZ
*
*******************************************/
void Pwm_Gpio_Voltage_Config(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;

        u32 PrescalerValue  = 0;
        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
        TIM_OCInitTypeDef TIM_OCInitStructure;
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);

        /*GPIOB_Pin_8, TIM4_Channel2 PWM*/
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8
        ;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
        GPIO_Init(GPIOB, &GPIO_InitStructure);

        GPIO_PinAFConfig(GPIOB, GPIO_PinSource8, GPIO_AF_TIM4);//GPIOB_Pin8 TIM4_Ch3N,

        TIM_DeInit(TIM4);
        /* Compute the prescaler value */
        PrescalerValue = (uint16_t) ((168000000/2) / 20000000) - 1;

        /* Time base configuration */
        TIM_TimeBaseStructure.TIM_Period = 1330*2;//指定下一次更新事件時要加載到活動自動重新加載寄存器中的周期值。
        TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue;
        TIM_TimeBaseStructure.TIM_ClockDivision = 0;
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
        TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);

        /* PWM1 Mode configuration: Channel4 */
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
        TIM_OCInitStructure.TIM_Pulse = 0; //指定要加載到捕獲比較寄存器的脈沖值。此參數可以是介于0x0000和0xFFFF之間的數字
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
        TIM_OC2Init(TIM4, &TIM_OCInitStructure);
        TIM_OC2PreloadConfig(TIM4, TIM_OCPreload_Enable);

        TIM_ARRPreloadConfig(TIM4, ENABLE);
        /* TIM4 enable counter */
        TIM_Cmd(TIM4, ENABLE);
}
/******************************************
*函數功能: 改變PWM的占空比輸出
*入口參數: 占空比的值
*返回值:   無
*******************************************/
void PWM_SET_Voltage(uint32_t  VoltageValue)
{
        TIM4->CCR2 = VoltageValue;
}


我這個代碼有什么問題嗎   為什么我輸出不了波形圖
回復

使用道具 舉報

8#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表