找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3313|回复: 1
收起左侧

stm32f103通用定时器输出PWM初始化

[复制链接]
ID:545952 发表于 2020-4-18 19:25 | 显示全部楼层 |阅读模式
main.c中
#include "stm32f10x.h"
#include "time.h"
/****TIM3的通道2《CH2》(PA7)产生一路PWM输出:
     周期10ms,占空比30%****/
int main(void)
{
   TIM3_PWM_Init();
         while(1);
}

time.c中
#include "stm32f10x.h"
#include "time.h"
#include<stdio.h>
void  TIM3_PWM_Init(void)
{
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //TIM3定时器时钟使能
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能GPIOA(PA7)时钟
       
  //设置CH2(PA7)引脚配置--复用输出功能
        GPIO_InitTypeDef PA7;//定义GPIOx结构体名字
        PA7.GPIO_Pin=GPIO_Pin_7;
        PA7.GPIO_Mode=GPIO_Mode_AF_PP;//复用推挽输出
        PA7.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&PA7);//初始化GPIOA
       
        //定时器TIM3时基参数配置
        TIM_TimeBaseInitTypeDef  time3;//定义基本定时器结构体名字
        time3.TIM_ClockDivision=TIM_CKD_DIV1; //设置捕获输入分频
        time3.TIM_CounterMode=TIM_CounterMode_Up;//设置计数模式:TIM向上计数模式
        time3.TIM_Prescaler=7200-1;//设置用来作为TIMx时钟频率除数的预分频值
        time3.TIM_Period=100-1;//设置重装载值(周期)
        TIM_TimeBaseInit(TIM3,&time3); //根据指定的参数初始化TIMx的时间基数单位
  
        //TIM3时通道2输出参数配置 PWM模式         
        TIM_OCInitTypeDef  time3_oC2;
        time3_oC2.TIM_OCMode=TIM_OCMode_PWM1; //选择定时器模式:TIM脉冲宽度调制模式1
        time3_oC2.TIM_OutputState=TIM_OutputState_Enable; //比较输出使能
        time3_oC2.TIM_OCPolarity=TIM_OCPolarity_High;//输出极性:有效电平为高
       
        time3_oC2.TIM_Pulse=30;//比较值
        TIM_OC2Init(TIM3,&time3_oC2); //根据T指定的参数初始化外设TIM3 OC2
        TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); //使能TIM3在CCR2上的预装载寄存器
       
        TIM_Cmd(TIM3,ENABLE ); //使能指定的TIMx
}


f5e3a8621ee5848a92b238bd5293f9d.png

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:756182 发表于 2020-6-3 01:10 来自手机 | 显示全部楼层
有完整代码吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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