找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3588|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

有人配置過STM32的tim4嗎?請(qǐng)教一下

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:374198 發(fā)表于 2019-1-18 09:23 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
tim14配置好了之后
TIM14_PWM_Init(1000-1,84-1);         
TIM_SetCompare1(TIM14,1200);

通過調(diào)用改變這個(gè)就能改變頻率占空比。
看到有大佬在帖子里發(fā):
IM14使用
TIM_SetCompare1(TIM14,625); 但是這個(gè)辦法對(duì)TIM4行不通。

TIM4使用
TIM_OCInitStructure.TIM_Pulse = dutyCycle;


tim4配置方法和tim14不一樣,但根據(jù)他說(shuō)的用TIM_OCInitStructure.TIM_Pulse = dutyCycle;配置好了調(diào)用到主函數(shù)就會(huì)報(bào)錯(cuò)說(shuō)沒有定義
就沒法在主函數(shù)里修改數(shù)值更改占空比。

在這里求教一下,麻煩有了解的幫忙指點(diǎn)一下。非常感謝。QQ2302947935

評(píng)分

參與人數(shù) 1黑幣 +8 收起 理由
菜雞一只314159 + 8 贊一個(gè)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:443164 發(fā)表于 2019-1-18 13:08 | 只看該作者
你去搜索正點(diǎn)原子教程,定時(shí)器實(shí)驗(yàn)內(nèi)容很全的
回復(fù)

使用道具 舉報(bào)

板凳
ID:94031 發(fā)表于 2019-1-18 15:27 | 只看該作者
/***********************TIM4初始化PWM相關(guān)GPIO*************************/

static void GENERAL_TIM_GPIO_Config(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;                                                        //初始化結(jié)構(gòu)體

  RCC_APB2PeriphClockCmd(GENERAL_TIM4_CH1_GPIO_CLK, ENABLE);//使能GPIOB端口時(shí)鐘
  GPIO_InitStructure.GPIO_Pin =  GENERAL_TIM4_CH1_PIN;                        //PB6
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                                    //復(fù)用推挽輸出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                                  //推挽速度50MH
  GPIO_Init(GENERAL_TIM4_CH1_PORT, &GPIO_InitStructure);                //初始化相關(guān)GPIO       
}


/**************************TIM2PWM配置********************************/
static void GENERAL_TIM_Mode_Config(void)
{

        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;                                        //定時(shí)器基本配置結(jié)構(gòu)體
        TIM_OCInitTypeDef  TIM_OCInitStructure;                                                        //通道配置結(jié)構(gòu)體       
               
        GENERAL_TIM4_APBxClock_FUN(GENERAL_TIM4_CLK,ENABLE);                        //TIM2 掛載在APB1 32M
       
        // 自動(dòng)重裝載寄存器的值,累計(jì)TIM_Period+1個(gè)頻率后產(chǎn)生一個(gè)更新或者中斷
       
        TIM_TimeBaseStructure.TIM_Period=GENERAL_TIM4_Period;                        //配置計(jì)數(shù)720次               
        // 驅(qū)動(dòng)CNT計(jì)數(shù)器的時(shí)鐘 = Fck_int/(psc+1)
        TIM_TimeBaseStructure.TIM_Prescaler= GENERAL_TIM4_Prescaler;        //CNT時(shí)鐘不分頻       
        // 時(shí)鐘分頻因子 ,配置死區(qū)時(shí)間時(shí)需要用到
        TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;                        //時(shí)鐘不分頻       
        // 計(jì)數(shù)器計(jì)數(shù)模式,設(shè)置為向上計(jì)數(shù)
        TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;                //向上計(jì)數(shù)               
        // 重復(fù)計(jì)數(shù)器的值,沒用到不用管
        TIM_TimeBaseStructure.TIM_RepetitionCounter=0;                                       
        // 初始化定時(shí)器
        TIM_TimeBaseInit(GENERAL_TIM4, &TIM_TimeBaseStructure);                        //初始化定時(shí)器配置

        /*--------------------輸出比較結(jié)構(gòu)體初始化-------------------*/       

                               
        // 配置為PWM模式1
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;                                //PWM模式1
        // 輸出使能
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;        //使能輸出
        // 輸出通道電平極性配置       
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;                //高電平使能
       
        // 輸出比較通道 1
        TIM_OCInitStructure.TIM_Pulse = 0;                                                //初始值為0
        TIM_OC1Init(GENERAL_TIM4, &TIM_OCInitStructure);                                //初始化配置
        TIM_OC1PreloadConfig(GENERAL_TIM4, TIM_OCPreload_Enable);                //使能加載寄存器
       
        TIM_Cmd(GENERAL_TIM4, ENABLE);
}



/*************************TIM4初始化函數(shù)****************************************/

void TIM4_PWM_Init(void)
{
        GENERAL_TIM_GPIO_Config();
        GENERAL_TIM_Mode_Config();               
}


回復(fù)

使用道具 舉報(bào)

地板
ID:263450 發(fā)表于 2019-1-19 00:15 | 只看該作者
沒有定義,你看一下你的配置外設(shè)的頭文件里是不是把tim4的宏注釋掉了
回復(fù)

使用道具 舉報(bào)

5#
ID:374198 發(fā)表于 2019-1-19 11:41 | 只看該作者
xuyaqi 發(fā)表于 2019-1-18 15:27
/***********************TIM4初始化PWM相關(guān)GPIO*************************/

static void GENERAL_TIM_G ...

請(qǐng)教一下在哪里修改占空比和頻率呢?
回復(fù)

使用道具 舉報(bào)

6#
ID:374198 發(fā)表于 2019-1-26 10:59 | 只看該作者
解決了,謝謝大家
回復(fù)

使用道具 舉報(bào)

7#
ID:94031 發(fā)表于 2019-1-26 18:21 | 只看該作者
七九六 發(fā)表于 2019-1-19 11:41
請(qǐng)教一下在哪里修改占空比和頻率呢?

頻率是這個(gè):static void GENERAL_TIM_Mode_Config(void);
脈寬是這個(gè):TIM_SetCompare1(GENERAL_TIM4,36);       
回復(fù)

使用道具 舉報(bào)

8#
ID:473218 發(fā)表于 2019-1-26 20:54 | 只看該作者
看看TIM4的時(shí)鐘有沒有配置,還有分頻是多少
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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