找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 1960|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

stm32f1的四路pwm實驗(成功)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:569034 發(fā)表于 2019-10-18 23:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include "./generaltim/bsp_generaltim.h"

static void GENERAL_TIM_GPIO_Config(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;

        RCC_APB2PeriphClockCmd(GENERAL_TIM_CH1_GPIO_CLK, ENABLE);
  GPIO_InitStructure.GPIO_Pin =  GENERAL_TIM_CH1_PIN;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GENERAL_TIM_CH1_PORT, &GPIO_InitStructure);

        RCC_APB2PeriphClockCmd(GENERAL_TIM_CH2_GPIO_CLK, ENABLE);
  GPIO_InitStructure.GPIO_Pin =  GENERAL_TIM_CH2_PIN;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GENERAL_TIM_CH2_PORT, &GPIO_InitStructure);
        

        RCC_APB2PeriphClockCmd(GENERAL_TIM_CH3_GPIO_CLK, ENABLE);
  GPIO_InitStructure.GPIO_Pin =  GENERAL_TIM_CH3_PIN;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GENERAL_TIM_CH3_PORT, &GPIO_InitStructure);
        
        RCC_APB2PeriphClockCmd(GENERAL_TIM_CH3_GPIO_CLK, ENABLE);
  GPIO_InitStructure.GPIO_Pin =  GENERAL_TIM_CH4_PIN;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GENERAL_TIM_CH3_PORT, &GPIO_InitStructure);
}

static void GENERAL_TIM_Mode_Config(void)
{

        GENERAL_TIM_APBxClock_FUN(GENERAL_TIM_CLK,ENABLE);
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        TIM_TimeBaseStructure.TIM_Period=GENERAL_TIM_PERIOD;        
        TIM_TimeBaseStructure.TIM_Prescaler= GENERAL_TIM_PSC;        
        TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;               
        TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;               
        TIM_TimeBaseStructure.TIM_RepetitionCounter=0;        
        TIM_TimeBaseInit(GENERAL_TIM, &TIM_TimeBaseStructure);
        TIM_OCInitTypeDef  TIM_OCInitStructure;
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;

        TIM_OCInitStructure.TIM_Pulse = GENERAL_TIM_CCR1;
        TIM_OC1Init(GENERAL_TIM, &TIM_OCInitStructure);
        TIM_OC1PreloadConfig(GENERAL_TIM, TIM_OCPreload_Enable);
        
        TIM_OCInitStructure.TIM_Pulse = GENERAL_TIM_CCR2;
        TIM_OC2Init(GENERAL_TIM, &TIM_OCInitStructure);
        TIM_OC2PreloadConfig(GENERAL_TIM, TIM_OCPreload_Enable);
        
        TIM_OCInitStructure.TIM_Pulse = GENERAL_TIM_CCR3;
        TIM_OC3Init(GENERAL_TIM, &TIM_OCInitStructure);
        TIM_OC3PreloadConfig(GENERAL_TIM, TIM_OCPreload_Enable);
        
        TIM_OCInitStructure.TIM_Pulse = GENERAL_TIM_CCR4;
        TIM_OC4Init(GENERAL_TIM, &TIM_OCInitStructure);
        TIM_OC4PreloadConfig(GENERAL_TIM, TIM_OCPreload_Enable);
        
        TIM_Cmd(GENERAL_TIM, ENABLE);
}

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

#ifndef BSP_GENERALTIM_H
#define BSP_GENERALTIM_H

#include "stm32f10x.h"

#define            GENERAL_TIM                   TIM3
#define            GENERAL_TIM_APBxClock_FUN     RCC_APB1PeriphClockCmd
#define            GENERAL_TIM_CLK               RCC_APB1Periph_TIM3

#define            GENERAL_TIM_PERIOD            (10-1)
#define            GENERAL_TIM_PSC               (72-1)

#define              GENERAL_TIM_CCR1            1
#define            GENERAL_TIM_CCR2              3
#define            GENERAL_TIM_CCR3              4
#define            GENERAL_TIM_CCR4              8

#define            GENERAL_TIM_CH1_GPIO_CLK      RCC_APB2Periph_GPIOA
#define            GENERAL_TIM_CH1_PORT          GPIOA
#define            GENERAL_TIM_CH1_PIN           GPIO_Pin_6

#define            GENERAL_TIM_CH2_GPIO_CLK      RCC_APB2Periph_GPIOA
#define            GENERAL_TIM_CH2_PORT          GPIOA
#define            GENERAL_TIM_CH2_PIN           GPIO_Pin_7

#define            GENERAL_TIM_CH3_GPIO_CLK      RCC_APB2Periph_GPIOB
#define            GENERAL_TIM_CH3_PORT          GPIOB
#define            GENERAL_TIM_CH3_PIN           GPIO_Pin_0

#define            GENERAL_TIM_CH4_GPIO_CLK      RCC_APB2Periph_GPIOB
#define            GENERAL_TIM_CH4_PORT          GPIOB
#define            GENERAL_TIM_CH4_PIN           GPIO_Pin_1


void GENERAL_TIM_Init(void);

#endif

TIM—4路PWM輸出.7z

180.35 KB, 下載次數(shù): 12, 下載積分: 黑幣 -5

stm32f1的四路pwm實驗(成功)

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

使用道具 舉報

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

本版積分規(guī)則

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

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

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