在设置stmf10x_it.c 中断函数EXTI0_IRQHandler时,函数如下:
void EXTI0_IRQHandler(void)
{
if((EXTI-> R&0X1)!=(uint32_t)RESET)
{
extern void LED_SetState(0xEE);
extern void BEEP_Work();
}
}
调用的函数非别在led.c和beep.c中,函数如下:
void LED_SetState(uint8_t stateValue)
{
GPIO_SetBits(GPIOC, (uint16_t)stateValue & 0x00FF);
GPIO_ResetBits(GPIOC, (~(uint16_t)stateValue) & 0x00FF);
}
void BEEP_Work(void)
{
u16 i;
for(i=0; i<100; i++)
{
PBout(5) = 1;
delay_us(100);
PBout(5) = 0;
delay_us(100);
}
}
在编译时,会在中断函数中出现错误:求解 error:#79:expected a type specifier,错误行为extern void LED_SetState(0xEE);,当不设置输入参数时,即extern void LED_SetState();没有错误。但没有参数我实现不了功能的,怎么也不明白怎么回事。
还有就是当把函数LED_SetState(0xEE);在main()里调用时没有错误。
求高手赐教,万分感谢!
|