OpenEdv-开源电子网

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

求助,STM32F407的PWM输出有问题

[复制链接]

11

主题

38

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
447
金钱
447
注册时间
2014-9-4
在线时间
107 小时
发表于 2016-11-24 14:35:01 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 liujia 于 2016-11-25 17:19 编辑

求助,原子的F407PWM程序,例程是PF9  TIM14有波形输出 ,我自己加个PF8直接copy过来,就把端口改了,为什么PF8的TIM13没有波形输出了

int main(void)
{

        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        uart_init(115200);
         
        PWM_Init(1700,4-1);        

      while(1)
        {
                  

        TIM_SetCompare1(TIM14,100);        
        TIM_SetCompare1(TIM13,100);        
               
        }
}

void PWM_Init(u32 arr,u32 psc)
{                                                         
        
        GPIO_InitTypeDef GPIO_InitStructure;
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        TIM_OCInitTypeDef  TIM_OCInitStructure;
        
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14,ENABLE);         
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM13,ENABLE);           

        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);         
        GPIO_PinAFConfig(GPIOF,GPIO_PinSource9,GPIO_AF_TIM14);
        GPIO_PinAFConfig(GPIOF,GPIO_PinSource8,GPIO_AF_TIM13);
        
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;         
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;         
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;      
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;   
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;      
        GPIO_Init(GPIOF,&GPIO_InitStructure);            
         
        TIM_TimeBaseStructure.TIM_Prescaler=psc;  
        TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
        TIM_TimeBaseStructure.TIM_Period=arr;
        TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
        
        TIM_TimeBaseInit(TIM13,&TIM_TimeBaseStructure);
        TIM_TimeBaseInit(TIM14,&TIM_TimeBaseStructure);

        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;

        TIM_OC1Init(TIM13, &TIM_OCInitStructure);  
        TIM_OC1Init(TIM14, &TIM_OCInitStructure);
        
        
        TIM_OC1PreloadConfig(TIM13, TIM_OCPreload_Enable);
        TIM_OC1PreloadConfig(TIM14, TIM_OCPreload_Enable);
        
       TIM_ARRPreloadConfig(TIM13,ENABLE);
      TIM_ARRPreloadConfig(TIM14,ENABLE);
        
        TIM_Cmd(TIM13, ENABLE);  
        TIM_Cmd(TIM14, ENABLE);
                                                                  
}  



最佳答案

查看完整内容[请看2#楼]

寄存器版本的,你时钟都搞错了,TIM13的时钟是哪个位??你去看看中文参考手册先。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-11-24 14:35:02 | 显示全部楼层
寄存器版本的,你时钟都搞错了,TIM13的时钟是哪个位??你去看看中文参考手册先。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

11

主题

38

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
447
金钱
447
注册时间
2014-9-4
在线时间
107 小时
 楼主| 发表于 2016-11-24 16:06:52 | 显示全部楼层
本帖最后由 liujia 于 2016-11-25 17:18 编辑

寄存器配置的也试过,不行





回复

使用道具 举报

10

主题

254

帖子

0

精华

高级会员

Rank: 4

积分
594
金钱
594
注册时间
2015-10-17
在线时间
145 小时
发表于 2016-11-24 16:10:16 | 显示全部楼层
一个一个的来可以么?为什么要将两个定时器的初始化写在一起.
开着单片机翱翔在天空
回复

使用道具 举报

10

主题

254

帖子

0

精华

高级会员

Rank: 4

积分
594
金钱
594
注册时间
2015-10-17
在线时间
145 小时
发表于 2016-11-24 16:10:20 | 显示全部楼层
一个一个的来可以么?为什么要将两个定时器的初始化写在一起.
开着单片机翱翔在天空
回复

使用道具 举报

11

主题

38

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
447
金钱
447
注册时间
2014-9-4
在线时间
107 小时
 楼主| 发表于 2016-11-24 16:11:26 | 显示全部楼层
原_子_哥门徒 发表于 2016-11-24 16:10
一个一个的来可以么?为什么要将两个定时器的初始化写在一起.

一个一个来也试过,下面寄存器就是一个一个来的,用示波器打就PF9有波形,PF8没有
回复

使用道具 举报

10

主题

254

帖子

0

精华

高级会员

Rank: 4

积分
594
金钱
594
注册时间
2015-10-17
在线时间
145 小时
发表于 2016-11-24 16:20:12 | 显示全部楼层
算了代码清理过程文件打包发到论坛上,让我们仔细研究下吧.
开着单片机翱翔在天空
回复

使用道具 举报

17

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
259
金钱
259
注册时间
2016-11-11
在线时间
48 小时
发表于 2016-11-24 17:35:01 | 显示全部楼层
你的程序是由硬件决定的,看数据手册PA8可以做pwm映射吗?应该不可以的。由于PA9的映射有pwm的所以可以,如果你需要pa8实现pwm可以用中断做pwm来控制
回复

使用道具 举报

11

主题

38

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
447
金钱
447
注册时间
2014-9-4
在线时间
107 小时
 楼主| 发表于 2016-11-25 17:15:22 | 显示全部楼层
原_子_哥门徒 发表于 2016-11-24 16:20
算了代码清理过程文件打包发到论坛上,让我们仔细研究下吧.

非常感谢你的帮助,蛮热情的,谢谢
回复

使用道具 举报

11

主题

38

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
447
金钱
447
注册时间
2014-9-4
在线时间
107 小时
 楼主| 发表于 2016-11-25 17:16:11 | 显示全部楼层
刘明洲 发表于 2016-11-24 17:35
你的程序是由硬件决定的,看数据手册PA8可以做pwm映射吗?应该不可以的。由于PA9的映射有pwm的所以可以,如 ...

配置问题,已经改完了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-3-1 16:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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