OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3463|回复: 1

请问F429的TIM9的PE5、PE6输出不了PWM是怎么回事?

[复制链接]

2

主题

3

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2020-10-28
在线时间
2 小时
发表于 2020-12-30 20:06:16 | 显示全部楼层 |阅读模式
以下是我的TIM9的程序:请大家帮助

void TIM4_PWM_Init(u16 arr,u16 psc)
{

    TIM_Handler.Instance                        = TIM9;                            //定时器9
    TIM_Handler.Init.Prescaler                = psc;                               //定时器分频 45,得到 90M/45=2M 时钟
    TIM_Handler.Init.CounterMode        = TIM_COUNTERMODE_UP;        //向上计数模式
    TIM_Handler.Init.Period                = arr;                          //自动重装载值 5000,得到PWM频率 2M/5k=400Hz
    TIM_Handler.Init.ClockDivision        = TIM_CLOCKDIVISION_DIV1;
    HAL_TIM_PWM_Init(&TIM_Handler);                                               //初始化PWM
       
    TIM_CHxHandler.OCMode                        = TIM_OCMODE_PWM1;                 //模式选择PWM1
    TIM_CHxHandler.Pulse                        = 0;                                   //设置比较值,此值用来确定占空比,默认为0
    TIM_CHxHandler.OCPolarity                = TIM_OCPOLARITY_HIGH;         //输出比较极性为高
               
    HAL_TIM_PWM_ConfigChannel(&TIM_Handler,&TIM_CHxHandler,TIM_CHANNEL_1);        //配置TIM3通道1
    HAL_TIM_PWM_Start(&TIM_Handler, TIM_CHANNEL_1);                //开启PWM通道1
    HAL_TIM_PWM_ConfigChannel(&TIM_Handler,&TIM_CHxHandler,TIM_CHANNEL_2);        //配置TIM3通道2
    HAL_TIM_PWM_Start(&TIM_Handler, TIM_CHANNEL_2);                //开启PWM通道2
       
    TIM9->CCR2=350;
    TIM9->CCR1=350;
}


void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
{
   __HAL_RCC_TIM9_CLK_ENABLE();                        //使能定时器4------改------------------------------               
    __HAL_RCC_GPIOE_CLK_ENABLE();                        //开启GPIOB时钟----改------------------------------               
               
    GPIO_Initure.Pin=GPIO_PIN_5|GPIO_PIN_6;                   //PB1
    GPIO_Initure.Mode=GPIO_MODE_AF_PP;          //复用推挽输出
    GPIO_Initure.Pull=GPIO_PULLUP;          //上拉
    GPIO_Initure.Speed=GPIO_SPEED_HIGH;     //高速
          GPIO_Initure.Alternate= GPIO_AF3_TIM9;        //PB1复用为TIM3_CH4

    HAL_GPIO_Init(GPIOE,&GPIO_Initure);//--IO口复用映射--------------------------------------------
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

3

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2020-10-28
在线时间
2 小时
 楼主| 发表于 2020-12-31 14:57:56 | 显示全部楼层
以此纪念自己愚蠢的行为。
TIM9用的是APB2,时钟频率为180M,设定arr,psc的时候要注意频率。
TIM9定时器功能的中断名要设置正确。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-3-1 06:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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