搜索
bottom↓
回复: 3

帮忙看看为什么STM32F407定时器1比较1通道一直中断

[复制链接]

出390入22汤圆

发表于 2023-3-15 16:10:52 | 显示全部楼层 |阅读模式
本帖最后由 liudingding 于 2023-3-15 18:01 编辑

如题,STM32F407定时器半懂不懂,写了个程序,想比较通道1中断,通道1比较数据20000,远大于计数器达到的上限,不可能匹配,怎么中断函数一直响应呢?void TIM1_CC_IRQHandler(void) 函数一直响应,
//TIM1 PWM部分初始化
//arr:自动重装值
//psc:时钟预分频数
void TIM1_init(u16 arr,u16 psc)        //通道4
{                                                          
        arr--;
        psc--;
        RCC->APB2ENR|=1<<0;      //使能定时器1的时钟  时钟84MHz
        TIM1->CCR1   =20000;     //比较1通道
        arr=30;
        psc=30;
        TIM1->ARR    =arr;                         //设定计数器自动重装值
        TIM1->PSC    =psc;                         //预分频器不分频
        TIM1->CCMR1 |=6<<4;             //CH1 PWM1模式                 
        TIM1->CCMR1 |=1<<3;            //CH1 预装载使能          
        TIM1->CR1   |=1<<7;            //ARPE使能
        TIM1->DIER  |=3<<0;      //允许更新中断        允许比较1中断  
        TIM1->CR1   |=0x01;      //使能定时器1
        TIM1->BDTR  |=1<<15;     //主输出使能      比其它计数器多的一条
        MY_NVIC_Init(2,2,TIM1_UP_TIM10_IRQn,2);          //
        MY_NVIC_Init(1,2,TIM1_CC_IRQn,2);                //
}  
//定时器1中断服务程序         
void TIM1_UP_TIM10_IRQHandler(void)
{                                                                   
        if(TIM1->SR&0x0001)   //溢出中断
        {
                UH=0;
        }                                  
        TIM1->SR&=~(1<<0);    //清除中断标志位             
}

void TIM1_CC_IRQHandler(void)  
{                                                                   
        if(TIM1->SR&0x0002)   //比较1中断
         {
                UH=0;
         }                                  
           TIM1->SR&=~0x0002;    //清除中断标志位             
}

出0入0汤圆

发表于 2023-3-20 16:41:59 | 显示全部楼层
这个还是找寄存器配置高手吧,实在看不懂

出0入75汤圆

发表于 2023-3-20 17:03:00 | 显示全部楼层
放弃标准库吧。
T1计数器和CCR寄存器都是16位的,20000<65535。

出0入4汤圆

发表于 2023-3-20 18:05:20 | 显示全部楼层
从手册上找了个图,不确实是不是LZ要的模式
关注一下CCR值超过ARR后,OCREF一直为高,CCxIF标志位会保持,所以清了会再进。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-29 05:16

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

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