STM32 SysTick 中断。新手求助~~
时间:10-02
整理:3721RD
点击:
不知怎么的,中断程序一直进不去。
程序大致是这样的:
RCC_Configuration();
//其中加了这句,不知道AFIO有没有用
//RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE );
GPIO_Configuration();
SysTick_Configuration();
//里面写了这些,不太清楚NVIC这一块,是不是这样用
// SysTick_CounterCmd( SysTick_Counter_Disable ); //失能SysTick定时器
// SysTick_CLKSourceConfig( SysTick_CLKSource_HCLK_Div8 ); //选择HCLK为SysTick的时钟源
// SysTick_CounterCmd( SysTick_Counter_Clear ); //清除SysTick计数器
// SysTick_ITConfig( DISABLE ); //失能SysTick中断
// SysTick_SetReload( 9000*200 );
// /* Set SysTick Priority to 3 */
// NVIC_SystemHandlerPriorityConfig( SystemHandler_SysTick, 3, 0 );
SysTick_CounterCmd( SysTick_Counter_Enable ); //启动SysTick计数
SysTick_ITConfig( ENABLE ); //shi能SysTick中断
while(1);
//中断程序只有这点儿
void SysTick_Handler( void )
{
GPIO_WriteBit( LEDPORT, LED2PIN, Bit_RESET );
}
结果是LED一直不会亮
一定是我漏了什么,大家帮忙指正一下,不胜感激~~
程序大致是这样的:
RCC_Configuration();
//其中加了这句,不知道AFIO有没有用
//RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE );
GPIO_Configuration();
SysTick_Configuration();
//里面写了这些,不太清楚NVIC这一块,是不是这样用
// SysTick_CounterCmd( SysTick_Counter_Disable ); //失能SysTick定时器
// SysTick_CLKSourceConfig( SysTick_CLKSource_HCLK_Div8 ); //选择HCLK为SysTick的时钟源
// SysTick_CounterCmd( SysTick_Counter_Clear ); //清除SysTick计数器
// SysTick_ITConfig( DISABLE ); //失能SysTick中断
// SysTick_SetReload( 9000*200 );
// /* Set SysTick Priority to 3 */
// NVIC_SystemHandlerPriorityConfig( SystemHandler_SysTick, 3, 0 );
SysTick_CounterCmd( SysTick_Counter_Enable ); //启动SysTick计数
SysTick_ITConfig( ENABLE ); //shi能SysTick中断
while(1);
//中断程序只有这点儿
void SysTick_Handler( void )
{
GPIO_WriteBit( LEDPORT, LED2PIN, Bit_RESET );
}
结果是LED一直不会亮
一定是我漏了什么,大家帮忙指正一下,不胜感激~~
终于自己找到原因了。开始时是按一本书上的例程建的keil工程,包含了一个 stm32f10x_it.c的文件。一直没打开看过,以为是it相关的设置什么的。
结果里面定义的全是 空的 中断函数,,所以执行的一直是这个空的中断函数,而非main.c中自己写的那个,所以,看起来就像是没有执行中断程序。
问题解决了~~
比我刚开始的时候好多,我那时没开中断~