HC32F003基本定时器中断
刚接触到华大的芯片,小新一枚,请大家多多关照使用HC32F003的基本定时器,去官网上也下载了例程,下载到自己的板子上发现无法进入中断,网上搜没有帖子作参考,自己琢磨了一天也没用,还请大家帮我看看
void Tim2_IRQHandler(void)
{
Gpio_WriteOutputIO(LEDRed_GPIO,TRUE);
if (TRUE == Bt_GetIntFlag(TIM2))
{
Bt_ClearIntFlag(TIM2);
timer.time1++;
if(timer.time1>30000)
timer.time1=0;
}
}
void BaseTime_Init(void)
{
stc_bt_cfg_t stcCfg;
uint16_t u16ArrData = 0xf000;
uint16_t u16InitCntData = 0xC000;
DDL_ZERO_STRUCT(stcCfg);
Sysctrl_SetPeripheralGate(SysctrlPeripheralBt, TRUE);//打开BT外设时钟
stcCfg.enGateP = BtPositive; //门控极性控制
stcCfg.enGate= BtGateDisable; //门控使能
stcCfg.enPRS = BtPCLKDiv8; //预除频配置
stcCfg.enTog = BtTogDisable; //反转输出使能
stcCfg.enCT = BtTimer; //定时/计数功能选择
stcCfg.enMD = BtMode2; //计数模式配置
Bt_Init(TIM2, &stcCfg);//Bt初始化
//设置重载值和计数值,启动计数
Bt_ARRSet(TIM2, u16ArrData);
Bt_Cnt16Set(TIM2, u16InitCntData);
Bt_Run(TIM2);
//TIM2中断使能
Bt_ClearIntFlag(TIM2);
Bt_EnableIrq(TIM2);
EnableNvic(TIM2_IRQn, IrqLevel2, TRUE);
}
就这些代码,没其他的了
这个配置应该没什么问题,不过一般是先使能中断,再启动timer
感觉是其他问题导致的,代码没有看出什么问题。参考官方的例程看一看。 是不是有什么特殊的设置,或者硬件问题 定时器中断是一个比较基本的应用。 还有IO中断。也相当基础。 martinhu 发表于 2021-2-22 17:59
这个配置应该没什么问题,不过一般是先使能中断,再启动timer
我试了一下,还是不行,中断进不去{:sad:} 余三水 发表于 2021-2-22 19:08
感觉是其他问题导致的,代码没有看出什么问题。参考官方的例程看一看。
这个代码就是官方代码拷贝下来的,我也把官方的代码原封不动的编译下到芯片中去,结果一样没进入中断 yiyigirl2014 发表于 2021-2-22 21:58
是不是有什么特殊的设置,或者硬件问题
我也不知道有啥特殊设置,文档上说的很简单,网上搜也搜不到,外围啥电路都没有,就一个单片机,我都换了好几个芯片了,结果一样,就是进不了中断 martinhu 发表于 2021-2-22 17:59
这个配置应该没什么问题,不过一般是先使能中断,再启动timer
我将定时器的计数寄存器的值输出一下看看,结果发现值为初始值,定时器就没有成功运行过 清醉风尘 发表于 2021-2-23 17:16
我将定时器的计数寄存器的值输出一下看看,结果发现值为初始值,定时器就没有成功运行过 ...
如果程序没问题,是不是板子有问题?? 建议对比一下官方例程 最好把整个工程打包发出来看看 楼主后来是怎么解决的 豌豆爹 发表于 2021-2-25 10:51
建议对比一下官方例程
就是官方原版程序,除了编译一下就下载到芯片里,其他都没动,仿真显示卡在检测中断的死循环里了,定时器里的寄存器数值就没任何变化,定时器根本就没启动,PWM也是如此,根本无法产生。 martinhu 发表于 2021-2-24 20:10
如果程序没问题,是不是板子有问题??
我板子上其他功能都可以,唯独定时器无法启动中断,与定时器相关的PWM也无法运行。串口通讯的波特率产生就是用的定时器,这个是可以,不知道为啥 kinto 发表于 2021-2-26 12:54
楼主后来是怎么解决的
使用滴答定时器,基本定时器和高级定时器基本报废,PWM也无法产生,也只能用IO口模拟了 清醉风尘 发表于 2021-2-26 14:18
使用滴答定时器,基本定时器和高级定时器基本报废,PWM也无法产生,也只能用IO口模拟了 ...
这个问题后来代理没有和你沟通吗?你好像使用的是自建的KEIL工程???但是工程配置里面缺少一个设置,所以中断都进不了……
建议楼主在不熟悉工程配置的时候,使用驱动库样例
GFDSGDSFGFDSGDFSGFDG HDFSHGDFSGDSGDSGSDFG