问题:使用STM8库函数 用IAR无法正常触发外部中断
大家好,本人初学STM8,使用STM8库函数 用IAR无法正常触发外部中断;我的做法是:开机,让LED闪烁2次,进入Halt模式;然后 用PB0的按键做外部下降缘触发唤醒,唤醒后LED快速闪烁;
现象是:进入了Halt模式后(不确定是否进去,反正LED一直听着——应该说明CPU已经停止运行了),按按键没有任何反应。貌似是触发不成功?
从早上查到现在,收获甚微。有人说:@far @interrupt void NonHandledInterrupt (void);(在这个文件中stm8_interrupt_vector.c)要做什么设置。但是我发现库文件夹没有 "stm8_interrupt_vector.c"这个文件啊?
烦请会的人给出参考答案或者参考程序、意见等。先谢谢大侠们!
RE:问题:使用STM8库函数 用IAR无法正常触发外部中断
连上仿真器,在中断函数里设置断点,运行看能不能进入断点,才能判断是不是进入中断回复:问题:使用STM8库函数 用IAR无法正常触发外部中断
建议楼主把你的程序发上来吧,根据你的描述,你的按键中断程序根本就没有,怎么会进入中断呢。CPU进入halt模式没问题,你的按键中断处理内容是空的,所以不会做按键处理的。要解决这个问题,首先设置按键配置(包含端口配置,触发沿设置),再设置中断优先级,然后再在中断函数里面实现相应的按键中断内容:举个例子,
INTERRUPT_HANDLER(EXTI_PORTB_IRQHandler, 4)
{
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
port_b_data=GPIO_ReadInputData(GPIOB);
key_data=port_b_data&0xf0;
switch(key_data)
{
case 0x70:
uart_putchar ('3');
break;
case 0xb0:
uart_putchar ('2');
break;
case 0xd0:
uart_putchar ('1');
break;
case 0xe0:
uart_putchar ('0');
break;
default :
uart_putchar ('?');
}
实现一个这样的程序,让按键才能触发呢
页:
[1]