打印
[STM8]

IAR for STM8头文件中断向量定义的疑惑

[复制链接]
12744|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hjl2832|  楼主 | 2011-4-12 17:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教各位,我使用STM8S105来学习,使用IAR FOR STM8,但今天在使用时发现IAR自带的头文件中的中断向量定义与STM8S105的手册不一至,IAR中STM8S105K4.H头文件的定义如下:/*--------------------------------------------------------------------
*      Interrupt vector numbers
*-----------------------------------------------------------------------*/
#define SPI_TXE_vector                       0x0C
#define SPI_RXNE_vector                      0x0C
#define SPI_WKUP_vector                      0x0C
#define SPI_MODF_vector                      0x0C
#define SPI_CRCERR_vector                    0x0C
#define SPI_OVR_vector                       0x0C
#define TIM1_OVR_TIF_vector                  0x0D
#define TIM1_OVR_BIF_vector                  0x0D
#define TIM1_OVR_UIF_vector                  0x0D
#define TIM1_CAPCOM_CC1IF_vector             0x0E
#define TIM1_CAPCOM_CC2IF_vector             0x0E
#define TIM1_CAPCOM_COMIF_vector             0x0E
#define TIM1_CAPCOM_CC4IF_vector             0x0E
#define TIM1_CAPCOM_CC3IF_vector             0x0E
#define TIM2_OVR_UIF_vector                  0x0F
#define TIM3_OVR_UIF_vector                  0x11
#define TIM2_CAPCOM_CC3IF_vector             0x10
#define TIM3_CAPCOM_CC3IF_vector             0x12
#define TIM2_CAPCOM_CC1IF_vector             0x10
#define TIM2_CAPCOM_TIF_vector               0x10
#define TIM3_CAPCOM_TIF_vector               0x12
#define TIM3_CAPCOM_CC1IF_vector             0x12
#define TIM3_CAPCOM_CC2IF_vector             0x12
#define TIM2_CAPCOM_CC2IF_vector             0x10
#define I2C_SB_vector                        0x15
#define I2C_ADDR_vector                      0x15
#define I2C_ADD10_vector                     0x15
#define I2C_STOPF_vector                     0x15
#define I2C_BTF_vector                       0x15
#define I2C_OVR_vector                       0x15
#define I2C_RXNE_vector                      0x15
#define I2C_TXE_vector                       0x15
#define I2C_BERR_vector                      0x15
#define I2C_ARLO_vector                      0x15
#define I2C_AF_vector                        0x15
#define I2C_WUFH_vector                      0x15
#define UART2_T_TXE_vector                   0x16
#define UART2_T_TC_vector                    0x16
#define UART2_R_OR_vector                    0x17
#define UART2_R_RXNE_vector                  0x17
#define UART2_R_IDLE_vector                  0x17
#define UART2_R_PE_vector                    0x17
#define UART2_R_LBDF_vector                  0x17
#define ADC1_AWS2_vector                     0x18
#define ADC1_AWS1_vector                     0x18
#define ADC1_AWS0_vector                     0x18
#define ADC1_AWS3_vector                     0x18
#define ADC1_EOC_vector                      0x18
#define ADC1_AWS5_vector                     0x18
#define ADC1_AWS6_vector                     0x18
#define ADC1_AWS7_vector                     0x18
#define ADC1_AWS8_vector                     0x18
#define ADC1_AWS9_vector                     0x18
#define ADC1_AWDG_vector                     0x18
#define ADC1_AWS4_vector                     0x18
#define TIM4_OVR_UIF_vector                  0x19
#define FLASH_EOP_vector                     0x1A
#define FLASH_WR_PG_DIS_vector               0x1A

而我在查找STM8S105的数据手册时看到的中断向量的定义如下:
IRQ NO      Source block             Description
  0                TLI                     External top level interrupt
  1                AWU                   Auto wake up from halt
  2                CLK                    Clock controller
  3                EXTI0                 Port A external interrupts
  4                EXTI1                 Port B external interrupts
  5                EXTI2                 Port C external interrupts
  6                EXTI3                 Port D external interrupts
  7                EXTI4                 Port E external interrupts
  8                                         Reserved
  9                                         Reserved
  10              SPI                     End of transfer
  11              TIM1                  TIM1update/overflow/underflow/trigger/break
  12              TIM1                  TIM1 capture/ compare
  13              TIM                    TIM update/ overflow
  14              TIM                    TIM capture/ compare
  15              TIM3                  Update/ overflow
  16              TIM3                  Capture/ compare
  17                                       Reserved
  18                                       Reserved
  19              I2C                    I2C interrupt
  20              UART2               Tx complete
  21              UART2               Receive register DATA FULL
  22              ADC1        ADC1 end of conversion/analog watchdog interrupt
  23              TIM                    TIM update/ overflow
  24              Flash                  EOP/ WR_PG_DIS

请问如此以来,如果我要在IAR用中断程序,那不是出错了吗?
沙发
香水城| | 2011-4-12 18:29 | 只看该作者
你把数据手册中的中断向量表看全了,不要忽略复位和软中断!

使用特权

评论回复
板凳
dfsa| | 2011-4-12 19:12 | 只看该作者
再翻翻数据手册

使用特权

评论回复
地板
sdpz| | 2011-4-12 20:40 | 只看该作者
手册向量号 + 2 = IAR向量号

使用特权

评论回复
5
hjl2832|  楼主 | 2011-4-13 09:01 | 只看该作者
大家的意思是说,手册没给出参数的“复位和软中断”在IAR里要算进去?这样子那么就是+2就对得上了,可我又不明白了,为什么COSMIC里中断向量定义又不需要加上那两个?

使用特权

评论回复
6
枫叶gbwz| | 2013-6-4 15:58 | 只看该作者
香水城 发表于 2011-4-12 18:29
你把数据手册中的中断向量表看全了,不要忽略复位和软中断!

学习了,能讲讲IAR是如何对应的么,比如TIM2的中断地址是0x00 8054,而vector=0x15.这个对应关系是什么呢

使用特权

评论回复
7
astwyg| | 2013-6-5 22:53 | 只看该作者
枫叶gbwz 发表于 2013-6-4 15:58
学习了,能讲讲IAR是如何对应的么,比如TIM2的中断地址是0x00 8054,而vector=0x15.这个对应关系是什么呢 ...

有偏移量吧

使用特权

评论回复
8
ltel2105| | 2015-4-25 14:45 | 只看该作者
多学习一下

使用特权

评论回复
9
周董| | 2015-4-25 20:38 | 只看该作者
提示: 该帖被管理员或版主屏蔽
10
598330983| | 2015-4-25 22:23 | 只看该作者
提示: 该帖被管理员或版主屏蔽
11
szyuhua| | 2016-3-14 19:59 | 只看该作者
香水城 发表于 2011-4-12 18:29
你把数据手册中的中断向量表看全了,不要忽略复位和软中断!

这句话太经典,解决了我的疑惑,谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

1018

帖子

4

粉丝