你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

问题:使用STM8库函数 用IAR无法正常触发外部中断

[复制链接]
mythink 提问时间:2013-9-1 19:02 /
 大家好,本人初学STM8,使用STM8库函数 用IAR无法正常触发外部中断;
我的做法是:开机,让LED闪烁2次,进入Halt模式;然后 用PB0的按键做外部下降缘触发唤醒,唤醒后LED快速闪烁;
现象是:进入了Halt模式后(不确定是否进去,反正LED一直听着——应该说明CPU已经停止运行了),按按键没有任何反应。貌似是触发不成功?
从早上查到现在,收获甚微。有人说:@far @interrupt void NonHandledInterrupt (void);(在这个文件中stm8_interrupt_vector.c)要做什么设置。但是我发现库文件夹没有 "stm8_interrupt_vector.c"这个文件啊?
烦请会的人给出参考答案或者参考程序、意见等。先谢谢大侠们!
收藏 评论2 发布时间:2013-9-1 19:02

举报

2个回答
feiante-155820 回答时间:2013-9-2 14:10:52

RE:问题:使用STM8库函数 用IAR无法正常触发外部中断

连上仿真器,在中断函数里设置断点,运行看能不能进入断点,才能判断是不是进入中断
fengye5340 回答时间:2013-9-6 09:53:55

回复:问题:使用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 ('?');
  }
实现一个这样的程序,让按键才能触发呢
 
 
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版