找回密码
 立即注册

QQ登录

只需一步,快速开始

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

stm32f103rct6配置PWM TIM8_CH2N TIM8_CH3N

[复制链接]
ID:281433 发表于 2020-9-15 16:09 | 显示全部楼层 |阅读模式
void TIM8_PWM_Init(int arr,int psc)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        TIM_OCInitTypeDef  TIM_OCInitStructure;
       

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8, ENABLE);        //使能定时器3时钟
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);  //使能GPIO外设和AFIO复用功能模块时钟

                         //设置该引脚为复用输出功能,输出TIM3 CH2的PWM脉冲波形        GPIOB.5
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1; //TIM_CH2
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
                GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIO
          
           //初始化TIM8
                TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值    80K
                TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值    不分频
                TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim
                TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式
                TIM_TimeBaseInit(TIM8, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位
       
        //初始化TIM8 Channe 2 3 PWM模式         
                TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //选择定时器模式:TIM脉冲宽度调制模式2
           TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable; //比较输出使能  TIM_OutputNState 配置N模式通道
          TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNIdleState_Reset; //输出极性:TIM输出比较极性高   TIM_OCNPolarity 配置N模式通道
                TIM_OC2Init(TIM8, &TIM_OCInitStructure);  //根据T指定的参数初始化外设TIM8 OC2               
                TIM_OC3Init(TIM8, &TIM_OCInitStructure);  //根据T指定的参数初始化外设TIM8 OC3
       
                TIM_OC2NPolarityConfig(TIM8, TIM_OCPreload_Enable);  //使能TIM8在CCR2上的预装载寄存器    配置N模式通道
          TIM_OC3NPolarityConfig(TIM8, TIM_OCPreload_Enable);  //使能TIM8在CCR3上的预装载寄存器    配置N模式通道
               
               
                TIM_CtrlPWMOutputs(TIM8,ENABLE);        //MOE 主输出使能       
       
          TIM_ARRPreloadConfig(TIM8, ENABLE); //使能TIMx在ARR上的预装载寄存器
          TIM_Cmd(TIM8, ENABLE);  //使能TIM3
               
       
}

MINISTM32 PWM输出实验.7z

318.19 KB, 下载次数: 83, 下载积分: 黑币 -5

评分

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

查看全部评分

回复

使用道具 举报

ID:70546 发表于 2022-4-7 17:15 | 显示全部楼层
牛皮啊老哥,下载来看看
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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