找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1548|回复: 0
打印 上一主题 下一主题
收起左侧

stm32f1的四路pwm实验(成功)

[复制链接]
跳转到指定楼层
楼主
ID:569034 发表于 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, 下载次数: 12, 下载积分: 黑币 -5

stm32f1的四路pwm实验(成功)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表