OpenEdv-开源电子网

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

STM32F407使用TIM14向GPIOG11,PG12,PG13,PG14四个IO引脚...

[复制链接]

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2020-11-26
在线时间
7 小时
发表于 2020-11-27 17:01:41 | 显示全部楼层 |阅读模式
2金钱
如题,本人欲使用STM32F407ZGT的定时器TIM14输出PWM信号到PG11,PG12,PG13,PG14四个引脚,四个引脚分别连接2片L298N驱动芯片各自的的ENA,ENB端口,来控制4个直流电机转速(四个电机转速相同)。以下为对应寄存器设置代码,代码中同时将LED0的端口PF9进行了复用设置,使硬件在运行时可以直接观测到PWM的信号。
代码烧录到实体硬件后,发现LED可以按照频率闪动,但直流电机不转,使用万用表检测PG11,PG12,PG13,PG14四个引脚后,发现其无电压值输出,想问一下是定时器的设置问题还是GPIO口的设置问题,PG6,PG7在电路中设置为了输入引脚,是否会造成影响?
如果有好心人知道问题出在哪里,希望能告诉我解决方法,本人使用的是寄存器版本的开发指南,HAL和库函数版本的操作不太熟悉,所以希望能给出操作寄存器的解决方法,谢谢。

void TIM14_PWM_Init(u32 arr,u32 psc)
{
RCC->APB1ENR|=1<<8; //打开TIM14
RCC->AHB1ENR|=1<<6;//PORTG
GPIO_Set(GPIOG,PIN14|PIN13|PIN12|PIN11,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);//复用设置,
GPIO_AF_Set(GPIOG,11,9);
GPIO_AF_Set(GPIOG,12,9);
GPIO_AF_Set(GPIOG,13,9);
GPIO_AF_Set(GPIOG,14,9);
GPIO_Set(GPIOF,PIN9,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);
GPIO_AF_Set(GPIOF,9,9);
TIM14->ARR=arr;
TIM14->PSC=psc;
TIM14->CCMR1|=6<<4; //开CH1,设置为PWM1
TIM14->CCMR1|=1<<3;
TIM14->CCER|=1<<0;
//TIM14->CCER|=1<<1;
TIM14->CR1|=1<<7;
TIM14->CR1|=1<<0;
}


最佳答案

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

使用道具 举报

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2020-11-26
在线时间
7 小时
 楼主| 发表于 2020-11-27 17:01:42 | 显示全部楼层
回复

使用道具 举报

0

主题

24

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2020-10-4
在线时间
96 小时
发表于 2020-12-21 22:21:55 | 显示全部楼层

TIM14能从PG11,PG12,PG13,PG14这四个引脚输出PWM信号?你是怎么做到的?
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2020-11-17
在线时间
7 小时
发表于 2021-2-9 22:39:42 | 显示全部楼层
可以分享一下吗
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2019-10-30
在线时间
8 小时
发表于 2021-2-27 23:57:23 | 显示全部楼层
请问你是怎样解决的,我现在遇到的问题是IO口复用到F4这个口发现不能输出PWM
void TIM14_PWM_Init(u32 arr,u32 psc)
{                                                          
        //此部分需手动修改IO口设置
        RCC->APB1ENR|=1<<8;         //TIM14时钟使能   
        //RCC->AHB1ENR|=1<<5;   //使能PORTF时钟       
        GPIO_Set(GPIOF,PIN4,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);//复用功能,上拉输出
        GPIO_AF_Set(GPIOF,4,9);        //PF9,AF9
       
        TIM14->ARR=arr;                        //设定计数器自动重装值
        TIM14->PSC=psc;                        //预分频器不分频
        TIM14->CCMR1|=6<<4;          //CH1 PWM1模式                 
        TIM14->CCMR1|=1<<3;         //CH1 预装载使能          
        TIM14->CCER|=1<<0;           //OC1 输出使能       
        TIM14->CCER|=1<<1;           //OC1 低电平有效          
        TIM14->CR1|=1<<7;           //ARPE使能
        TIM14->CR1|=1<<0;            //使能定时器14                                                                                           
}
改成F9又可以
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-28 12:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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