请教,STC8H8K64U TIMER3做计数器,不能计数
我用的是官方的函数库写的程序:定时器3初始化如下,计数器脉冲从P04(准双向输入口)输入:
TIM_InitStructure.TIM_ClkSource = TIM_CLOCK_Ext;
TIM_InitStructure.TIM_ClkOut = DISABLE;
TIM_InitStructure.TIM_Value = 10UL;
TIM_InitStructure.TIM_Run = ENABLE;
Timer_Inilize(Timer3,&TIM_InitStructure);
NVIC_Timer3_Init(ENABLE,Priority_2);
发现不能计数,但用TIMER0从P35输入脉冲能计数,请问是什么问题?手册关于定时器部分也看了N遍,没发现问题。各位大神知道是什么回事不?
5个定时器都能做计数器的,从预设计数值累加溢出后才会产生中断。
附件例程请参考。 乘风飞扬 发表于 2023-6-7 10:30
5个定时器都能做计数器的,从预设计数值累加溢出后才会产生中断。
附件例程请参考。 ...
谢谢您的回答,问题找到了,预设值应该是(65536UL-SET_VALUE)才是对的。非常感谢 乘风飞扬 发表于 2023-6-7 10:30
5个定时器都能做计数器的,从预设计数值累加溢出后才会产生中断。
附件例程请参考。 ...
代码里Timer4_Run();这个函数在哪引用的找不到啊
if(TIM == Timer4) //Timer4,固定为16位自动重装, 中断无优先级
{
Timer4_Stop(); //停止计数
if(TIMx->TIM_Interrupt == ENABLE) Timer4_InterruptEnable(); //允许中断
else Timer4_InterruptDisable(); //禁止中断
if(TIMx->TIM_ClkSource >TIM_CLOCK_Ext) return 2;
if(TIMx->TIM_ClkSource == TIM_CLOCK_12T) Timer4_12T(); //12T
if(TIMx->TIM_ClkSource == TIM_CLOCK_1T) Timer4_1T(); //1T
if(TIMx->TIM_ClkSource == TIM_CLOCK_Ext) Timer4_AsCounter(); //对外计数或分频
else Timer4_AsTimer(); //定时
if(TIMx->TIM_ClkOut == ENABLE) Timer4_CLKO_Enable(); //输出时钟
else Timer4_CLKO_Disable(); //不输出时钟
T4_Load(TIMx->TIM_Value);
if(TIMx->TIM_Run == ENABLE) Timer4_Run(); //开始运行
return 0; //成功
} 彭彭 发表于 2026-3-14 16:12
代码里Timer4_Run();这个函数在哪引用的找不到啊
if(TIM == Timer4) //Timer4,固定为16位自动重装, 中断 ...
在头文件里面定义,下载的项目编译通过后,在想要查看的函数上右键选择前往定义位置就能找到定义的地方:
或者通过全局查找“CTRL+SHIFT+F”也能找到该函数/变量的所有位置:
页:
[1]