久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2147|回復: 4
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
ID:809754 發表于 2021-6-10 16:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
由于本論壇禁止直接求程序,禁止伸手黨,所以向大家請教一下大致的實現方法與思路,理清頭緒后我自己來寫程序去實現,謝謝大家

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

請求支援!!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
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#
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;
}


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成都精品91一区二区三 | 中文字幕一区在线观看视频 | 国外成人在线视频 | 少妇精品亚洲一区二区成人 | 日本精品视频在线观看 | 成人亚洲网 | 激情黄色在线观看 | 在线色网站 | 成人亚洲 | 欧美日韩中文字幕在线 | 国产精品久久久久久久午夜片 | 精品国产乱码久久久久久闺蜜 | 精品中文视频 | 中文字幕欧美一区二区 | 精品欧美一区二区在线观看欧美熟 | 在线观看视频一区 | 久久亚洲一区二区三区四区 | 亚洲天堂网站 | 亚洲一区二区中文字幕在线观看 | 国产精品久久久久久久白浊 | 成人在线播放网站 | 国产精品国色综合久久 | 美女视频一区 | 亚洲一二三在线 | 日本高清视频在线播放 | 亚洲一区二区三区在线 | 韩日免费视频 | a级性视频| www国产亚洲精品久久网站 | 免费久久网 | 国产精品色 | 能看的av| 免费视频色 | 中文字幕亚洲一区 | 日韩成人在线观看 | 精品视频在线观看 | 中文字幕在线精品 | 紧缚调教一区二区三区视频 | 黄色免费网站在线看 | 99精品欧美一区二区蜜桃免费 | 亚洲精品视频免费 |