打印
[STM32F3]

STM32G474 用STM32CUBEMX生成TRTIM主定时器中断问题?

[复制链接]
1508|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
用STM32CUBEMX生成TRTIM主定时器,希望产生20K中断问题,调试发现定时器已经运行,但就是不进中断,请教。
STM32CUBEMX生成代码, HAL_HRTIM_WaveformCountStart(&hhrtim1, HRTIM_TIMERID_MASTER);  启动定时器,
调试调用 __HAL_HRTIM_GETCOUNTER()  能看到主定时器计数器在变化。但怎么都不进中断。 请教了,谢谢。

1.png (66.78 KB )

1.png

2.png (34.89 KB )

2.png

使用特权

评论回复
沙发
mmuuss586| | 2020-4-28 10:06 | 只看该作者
没看出来哪里问题,可以看下CUBE下面的参考程序

使用特权

评论回复
板凳
fubeining|  楼主 | 2020-4-29 07:38 | 只看该作者
问题已经解决。 原因ST的HAL库可能有缺陷或者时估计这么设计,有比较强的迷惑性。

        pTimerCfg.InterruptRequests = HRTIM_MASTER_IT_MUPD;  这里的结构体内已经定义了中断类型
        pTimerCfg.DMARequests = HRTIM_MASTER_DMA_NONE;
        pTimerCfg.DMASrcAddress = 0x0000;
        pTimerCfg.DMADstAddress = 0x0000;
        pTimerCfg.DMASize = 0x1;
        pTimerCfg.HalfModeEnable = HRTIM_HALFMODE_DISABLED;
        pTimerCfg.InterleavedMode = HRTIM_INTERLEAVED_MODE_DISABLED;
        pTimerCfg.StartOnSync = HRTIM_SYNCSTART_DISABLED;
        pTimerCfg.ResetOnSync = HRTIM_SYNCRESET_DISABLED;
        pTimerCfg.DACSynchro = HRTIM_DACSYNC_NONE;
        pTimerCfg.PreloadEnable = HRTIM_PRELOAD_ENABLED;                                       
        pTimerCfg.UpdateGating = HRTIM_UPDATEGATING_INDEPENDENT;
        pTimerCfg.BurstMode = HRTIM_TIMERBURSTMODE_MAINTAINCLOCK;
        pTimerCfg.RepetitionUpdate = HRTIM_UPDATEONREPETITION_ENABLED;               
        pTimerCfg.ReSyncUpdate = HRTIM_TIMERESYNC_UPDATE_UNCONDITIONAL;
        HAL_HRTIM_WaveformTimerConfig(&hhrtim1, HRTIM_TIMERINDEX_MASTER, &pTimerCfg);   在这函数内部 并没有对中断寄存器进行配置
       
        __HAL_HRTIM_MASTER_ENABLE_IT(&hhrtim1, pTimerCfg.InterruptRequests);                        //中断需要单独配置 在上函数中没有配置

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

66

帖子

0

粉丝