搜索
bottom↓
回复: 0

请教F407有定时器PWM工作不正常,

[复制链接]

出100入9汤圆

发表于 2023-9-22 23:38:45 | 显示全部楼层 |阅读模式
本帖最后由 rzsab 于 2023-9-22 23:54 编辑

用几个定时器输出PWM脉宽调制信号,各定时器周期相同,分别有函数定时器统一使能,和调节每周期调节CCR1得到不同脉冲宽度,现在用了定时器1、3、10,程序基本一致,只有定时器10正常,定时器1、3PWM无输出,TIM1->BDTR不懂,每个定时器中断周期一致,工作了,请教问题所在,谢谢

//PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数
正常函数
void TIM10_init(u16 arr,u16 psc)        //通道10
{                                                          
        //此部分需手动修改IO口设置
        RCC->APB2ENR|=1<<17;             //TIM10时钟使能   
        GPIO_Set(GPIOB,PIN8,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);//复用功能,上拉输出
        GPIO_AF_Set(GPIOB,8,3);          //PC6,AF3
        TIM10->ARR    =arr;                          //设定计数器自动重装值
        TIM10->PSC    =psc;                          //预分频器不分频
  TIM10->CCR1   =0;         //脉冲宽度???
        TIM10->CCMR1 |=6<<4;            //CH1 PWM1模式                 
        TIM10->CCMR1 |=1<<3;             //CH1 预装载使能          
        TIM10->CCER  |=1<<0;             //OC1 输出使能       
        TIM10->CCER  |=1<<0;             //OC1 高电平有效          
        TIM10->DIER  |=1<<0;      //允许更新中断          
        TIM10->CR1   |=1<<7;             //ARPE使能
//        TIM10->CR1   |=1<<0;            //使能定时器10                                                                                           
        MY_NVIC_Init(1,2,TIM1_UP_TIM10_IRQn,2);        //抢占1,子优先级10,组2                                                TIM10_TRG_COM_TIM14_IRQn                         
}  


以下不正常函数,由正常函数修改的到

void TIM1_init(u16 arr,u16 psc)
{                                                          
        RCC->APB2ENR|=1<<0;            //TIM1时钟使能   
        GPIO_Set(GPIOE,PIN9,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);//复用功能,上拉输出
        GPIO_AF_Set(GPIOE,9,1);          //PC6,AF1
        TIM1->ARR    =arr;                         //设定计数器自动重装值
        TIM1->PSC    =psc;                         //预分频器不分频
  TIM1->CCR1   =0;       //脉冲宽度???
        TIM1->CCMR1 |=6<<4;             //CH1 PWM1模式                 
        TIM1->CCMR1 |=1<<3;            //CH1 预装载使能          
        TIM1->CCER  |=1<<0;            //OC1 输出使能       
        TIM1->CCER  |=1<<0;            //OC1 高电平有效          
        TIM1->DIER  |=1<<0;      //允许更新中断          
        TIM1->CR1   |=1<<7;            //ARPE使能
        TIM11->CNT    =20;
//        TIM1->CR1   |=1<<0;             //使能定时器1                                                                                           
        TIM1->BDTR  |=1<<15;     //主输出使能           定时器1、8需要这条
  MY_NVIC_Init(2,2,TIM1_UP_TIM10_IRQn,2);          //抢占1,子优先级3,组2                                                                       
}
void TIM3_init(u16 arr,u16 psc)
{                                                          
        RCC->APB1ENR|=1<<1;            //TIM3时钟使能   
        GPIO_Set(GPIOC,PIN6,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);//复用功能,上拉输出
        GPIO_AF_Set(GPIOC,6,2);         //PC6,AF3
        TIM3->ARR    =arr;                         //设定计数器自动重装值
        TIM3->PSC    =psc;                         //预分频器不分频
  TIM3->CCR1   =0;         //脉冲宽度???
        TIM3->CCMR1 |=6<<4;             //CH1 PWM1模式                 
        TIM3->CCMR1 |=1<<3;            //CH1 预装载使能          
        TIM3->CCER  |=1<<0;      //OC1 输出使能       
        TIM3->CCER  |=1<<0;            //OC1 高电平有效          
        TIM3->DIER  |=1<<0;      //允许更新中断          
        TIM3->CR1   |=1<<7;            //ARPE使能
        TIM3->CNT    =20;
//        TIM3->CR1   |=1<<0;             //使能定时器3                                                                                           
  MY_NVIC_Init(2,2,TIM3_IRQn,2);          //抢占1,子优先级3,组2                        UP???                                               
}
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-5 06:04

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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