使用芯片时STM8L152k4,使用输入通道1,PD2,配置完输入输入一个3KHZ的方波信号,一直没反应
查看寄存器中TIM1_SR1中的值感觉有点奇怪,通道1的中断标志为0,一直显示没有捕捉发生,其他几位却被置1
不知道哪里出了错误,希望大佬帮忙找一下错误。
如果有范例程序,也可以贴出来一下 不胜感激
单片机源程序如下:
#include<stm8l15x.h>
#include"lcddisplay.h"
#include"swc_clk.h"
void TIM1_Capture_Comfig(void)
{
disableInterrupts();
CLK_PeripheralClockConfig(CLK_Peripheral_TIM1,ENABLE);
TIM1_SetCounter(0);
TIM1_PrescalerConfig(0x10,TIM1_PSCReloadMode_Immediate);
TIM1_CCxCmd(TIM1_Channel_1,ENABLE);
TIM1_ICInit(TIM1_Channel_1,TIM1_ICPolarity_Rising,TIM1_ICSelection_DirectTI,TIM1_ICPSC_DIV1,0x00);
TIM1_ITConfig(TIM1_IT_CC1,ENABLE);
TIM1_ClearITPendingBit(TIM1_IT_CC1);
TIM1_Cmd(ENABLE);
enableInterrupts();
/*
disableInterrupts();
TIM1_DeInit();
CLK_PeripheralClockConfig(CLK_Peripheral_TIM1,ENABLE);
TIM1_ICInit(TIM1_Channel_1,TIM1_ICPolarity_Rising,TIM1_ICSelection_DirectTI,TIM1_ICPSC_DIV8,0x00);
TIM1_ITConfig(TIM1_IT_CC1,ENABLE);
TIM1_ClearITPendingBit(TIM1_IT_CC1);
TIM1_Cmd(ENABLE);
enableInterrupts();
*/
}
main()
{
CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);
LCD_Init_Configure();
GPIO_Init(GPIOD,GPIO_Pin_2,GPIO_Mode_In_PU_No_IT);
TIM1_Capture_Comfig();
while (1);
}
INTERRUPT_HANDLER(TIM1_CC_IRQHandler,24)
{
TIM1_ClearITPendingBit(TIM1_IT_CC1);
}
|