打印
[N32G430]

N32G430高级定时器tim8和tim4配置PWM完成后输出没反应,tim1、tim2、tim3都是正常的(已解决)

[复制链接]
1159|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
JX1417|  楼主 | 2022-10-24 13:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 JX1417 于 2023-4-23 09:33 编辑

void TIM8_PWM_Init(u32 arr,u32 psc)
{
                GPIO_InitType GPIO_InitStructure;
                TIM_TimeBaseInitType TIM_TimeBaseStructure;
                OCInitType TIM_OCInitStructure;
        
          //时钟初始化
    RCC_APB2_Peripheral_Clock_Enable(RCC_APB2_PERIPH_TIM8);
    RCC_AHB_Peripheral_Clock_Enable(RCC_AHB_PERIPH_GPIOA);
    RCC_APB2_Peripheral_Clock_Enable(RCC_APB2_PERIPH_AFIO);

    GPIO_Structure_Initialize(&GPIO_InitStructure);
    GPIO_InitStructure.GPIO_Mode  = GPIO_MODE_AF_PP;
    GPIO_InitStructure.GPIO_Current = GPIO_DS_4MA;

    /* TIM1 CHx 输出 */
    GPIO_InitStructure.Pin        = GPIO_PIN_5;
    GPIO_InitStructure.GPIO_Alternate = GPIO_AF7_TIM8;
    GPIO_Peripheral_Initialize(GPIOA, &GPIO_InitStructure);

    //外设初始化
    TIM_Base_Struct_Initialize(&TIM_TimeBaseStructure);
    TIM_TimeBaseStructure.Period    = arr;
    TIM_TimeBaseStructure.Prescaler = psc;
    TIM_TimeBaseStructure.ClkDiv    = 0;
    TIM_TimeBaseStructure.CntMode   = TIM_CNT_MODE_UP;
    TIM_Base_Initialize(TIM8, &TIM_TimeBaseStructure);

        //pwm通道配置
    TIM_OCInitStructure.OcMode       = TIM_OCMODE_PWM2;//使用pwm2模式
    TIM_OCInitStructure.OutputState  = TIM_OUTPUT_STATE_ENABLE;//pwm 输出使能--内部通过这个直接控制了pwm输出,不需要再次调用 void TIM_Capture_Compare_Ch_Enable(TIM_Module* TIMx, uint16_t channel);
    TIM_OCInitStructure.OutputNState = TIM_OUTPUT_NSTATE_ENABLE;//互补输出使能
    TIM_OCInitStructure.OcPolarity   = TIM_OC_POLARITY_LOW;//有效电平
    TIM_OCInitStructure.OcNPolarity  = TIM_OCN_POLARITY_LOW;//有效空闲电平
    TIM_OCInitStructure.OcIdleState  = TIM_OC_IDLE_STATE_SET;//空闲电平
    TIM_OCInitStructure.OcNIdleState = TIM_OCN_IDLE_STATE_RESET;//互补空闲电平

                TIM_Compare_Capture4_Get(TIM8);
        
    TIM_OCInitStructure.Pulse = 0;
    TIM_Output_Channel4_Initialize(TIM8, &TIM_OCInitStructure);

    //使能定时器
    TIM_On(TIM8);
    //使能pwm输出--就是刹车寄存区的控制,普通定时器不需要
    TIM_PWM_Output_Enable(TIM8);

}

使用特权

评论回复
沙发
sy12138| | 2022-10-24 19:30 | 只看该作者
G430的TIM8 PA5是AF9吧

655e883cf214977315aebcbf6a766fc.png (306.08 KB )

655e883cf214977315aebcbf6a766fc.png

使用特权

评论回复
板凳
JX1417|  楼主 | 2022-10-24 20:59 | 只看该作者
感谢,问题已解决了

使用特权

评论回复
评论
ZHI123456 2023-1-14 13:36 回复TA
我映射也对了,我也是TIM8输出不了PWM 
地板
mollylawrence| | 2023-2-2 09:32 | 只看该作者
这个官网应该提供了例程了吧。              

使用特权

评论回复
5
uytyu| | 2023-2-2 09:40 | 只看该作者
查看一下手册,对应的IO口是否可行?

使用特权

评论回复
6
juliestephen| | 2023-2-4 22:00 | 只看该作者
这个有可能端口需要重新映射才能使用。

使用特权

评论回复
7
jackcat| | 2023-2-7 21:03 | 只看该作者
N32G430竟然有8个定时器?

使用特权

评论回复
8
earlmax| | 2023-2-7 21:56 | 只看该作者
这个是不是需要重新映射端口?              

使用特权

评论回复
9
sheflynn| | 2023-2-8 15:09 | 只看该作者
N32G430是不是时钟没有开启呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

16

帖子

0

粉丝