OpenEdv-开源电子网

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

STM32F103ZET6的TIM4完全映像 问题

[复制链接]

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2021-10-2
在线时间
15 小时
发表于 2022-5-17 11:27:57 | 显示全部楼层 |阅读模式
10金钱
想要用TIM4的4路PWM 使用重映像功能 我是跟按照TIM3配置的 以下是TIM3和TIM4的代码 TIM3 可以实现 配合L298N驱动两个风扇转速调节 但是TIM4不可以 不能调速,帮忙看看问题出在哪
void TIM4_PWMOUT_Init(u16 arr,u16 psc)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
        TIM_OCInitTypeDef TIM_OCInitStructure;
       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
        //使能TIM4时钟
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO,ENABLE);
        //①使能 GPIO 和 AFIO 复用功能时钟
        GPIO_PinRemapConfig(GPIO_Remap_TIM4, ENABLE);
        //②完全重映射 让原来的   CH1 B6->D12
                                                        //CH2 B7->D13
                                                        //CH3 B8->D14
                                                        //CH4 B9->D15
        // 配置GPIOD12、D13、D14、D15
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13| GPIO_Pin_14| GPIO_Pin_15;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOD,&GPIO_InitStructure);       
       
        // 初始化TIM4
        TIM_TimeBaseStructure.TIM_Period = arr; //设置在自动重装载周期值
        TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置预分频值
        TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM 向上计数模式
        TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); //③初始化 TIMx
       
        //初始化 TIM4 Channel2 PWM 模式
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //选择 PWM 模式 2
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性高
        TIM_OC1Init(TIM4, &TIM_OCInitStructure); //通道1
        TIM_OC2Init(TIM4, &TIM_OCInitStructure); //④初始化外设 TIM4 OC1 OC2
        TIM_OC3Init(TIM4, &TIM_OCInitStructure); //
        TIM_OC4Init(TIM4, &TIM_OCInitStructure); //④初始化外设 TIM4 OC1 OC2 OC3 OC4

        TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);
        TIM_OC2PreloadConfig(TIM4, TIM_OCPreload_Enable); //使能预装载寄存器
        TIM_OC3PreloadConfig(TIM4, TIM_OCPreload_Enable);
        TIM_OC4PreloadConfig(TIM4, TIM_OCPreload_Enable); //使能预装载寄存器
        TIM_Cmd(TIM4, ENABLE); //⑤使能 TIM4
       
        TIM_SetCompare1(TIM4,10000);
        TIM_SetCompare2(TIM4,10000);
        TIM_SetCompare3(TIM4,10000);
        TIM_SetCompare4(TIM4,10000);        //        ⑥上电后停转
}

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

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2021-10-2
在线时间
15 小时
 楼主| 发表于 2022-5-17 11:28:37 | 显示全部楼层
void TIM3_PWMOUT_Init(u16 arr,u16 psc)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
        TIM_OCInitTypeDef TIM_OCInitStructure;
       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
       
        // 配置GPIOA7A6
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&GPIO_InitStructure);
       
        // 配置GPIOB0B1
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB,&GPIO_InitStructure);       
       
        // 初始化TIM3
        TIM_TimeBaseStructure.TIM_Period = arr; //设置在自动重装载周期值
        TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置预分频值
        TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_tim
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM 向上计数模式
        TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //③初始化 TIMx
       
        //初始化 TIM3 Channel2 PWM 模式
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //选择 PWM 模式 2
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性高
        TIM_OC1Init(TIM3, &TIM_OCInitStructure); //通道1
        TIM_OC2Init(TIM3, &TIM_OCInitStructure); //④初始化外设 TIM3 OC1 OC2
        TIM_OC3Init(TIM3, &TIM_OCInitStructure); //
        TIM_OC4Init(TIM3, &TIM_OCInitStructure); //④初始化外设 TIM3 OC1 OC2 OC3 OC4

        TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);
        TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); //使能预装载寄存器
        TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable);
        TIM_OC4PreloadConfig(TIM3, TIM_OCPreload_Enable); //使能预装载寄存器
        TIM_Cmd(TIM3, ENABLE); //⑤使能 TIM3
       
        TIM_SetCompare1(TIM3,10000);
        TIM_SetCompare2(TIM3,10000);
        TIM_SetCompare3(TIM3,10000);
        TIM_SetCompare4(TIM3,10000);        //        ⑥上电后停转
}
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2021-10-2
在线时间
15 小时
 楼主| 发表于 2022-5-17 11:29:16 | 显示全部楼层
朱文杰 发表于 2022-5-17 11:28
void TIM3_PWMOUT_Init(u16 arr,u16 psc)
{
        GPIO_InitTypeDef GPIO_InitStructure;

TIM3 功能没问题
回复

使用道具 举报

0

主题

465

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1732
金钱
1732
注册时间
2021-4-11
在线时间
320 小时
发表于 2022-5-17 14:40:33 | 显示全部楼层
用示波器器测量一下有没有输出波形的,检查一下程序的配置
回复

使用道具 举报

11

主题

2131

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4731
金钱
4731
注册时间
2015-1-10
在线时间
591 小时
发表于 2022-5-17 15:10:04 | 显示全部楼层
remap设置放在GPIO配置之后试试
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2021-10-2
在线时间
15 小时
 楼主| 发表于 2022-5-17 16:37:49 | 显示全部楼层
阿侑kevin 发表于 2022-5-17 15:10
remap设置放在GPIO配置之后试试

还是没有效果
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2022-5-16
在线时间
2 小时
发表于 2022-5-17 17:55:18 来自手机 | 显示全部楼层
从定向有有full-remap?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 04:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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