OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3024|回复: 12

中断向量映射的问题

[复制链接]

15

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2016-11-11
在线时间
20 小时
发表于 2016-12-5 12:04:24 | 显示全部楼层 |阅读模式
2金钱
在做STM8S串口通信实验时,在电脑的串口调试助手上发送数据时,ch340模块有灯亮了下,说明数据确实发出去了。调试发现没有进入接收中断服务程序。STM8S105K4芯片数据手册上UART2的接收中断编号是21.而stm8s_interrupt.c文件中UART2接收中断服务函数编号是0x17。是不是有这方面原因。
QQ图片1.png
QQ图片2.png

最佳答案

查看完整内容[请看2#楼]

总中断没开。。。。啊啊啊啊啊,自己结贴
专才能精
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2016-11-11
在线时间
20 小时
 楼主| 发表于 2016-12-5 12:04:25 | 显示全部楼层
总中断没开。。。。啊啊啊啊啊,自己结贴
专才能精
回复

使用道具 举报

39

主题

599

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2109
金钱
2109
注册时间
2011-9-3
在线时间
119 小时
发表于 2016-12-5 16:40:51 | 显示全部楼层
IRQ=0X17的是UART3,而不是UART2.
#pragma vector=0x17
__interrupt void UART3_RX_IRQHandler(void)
{
  
}
回复

使用道具 举报

15

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2016-11-11
在线时间
20 小时
 楼主| 发表于 2016-12-6 10:28:26 | 显示全部楼层
螃蟹爱虫 发表于 2016-12-5 16:40
IRQ=0X17的是UART3,而不是UART2.
#pragma vector=0x17
__interrupt void UART3_RX_IRQHandler(void)

你的stm8s_interrupt.c发我一个呗    853598135@qq.com
专才能精
回复

使用道具 举报

15

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2016-11-11
在线时间
20 小时
 楼主| 发表于 2016-12-6 10:28:43 | 显示全部楼层
螃蟹爱虫 发表于 2016-12-5 16:40
IRQ=0X17的是UART3,而不是UART2.
#pragma vector=0x17
__interrupt void UART3_RX_IRQHandler(void)

你的stm8s_interrupt.c发我一个呗    853598135@qq.com
专才能精
回复

使用道具 举报

15

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2016-11-11
在线时间
20 小时
 楼主| 发表于 2016-12-6 10:30:19 | 显示全部楼层
螃蟹爱虫 发表于 2016-12-5 16:40
IRQ=0X17的是UART3,而不是UART2.
#pragma vector=0x17
__interrupt void UART3_RX_IRQHandler(void)

我的stm8s_interrupt.c可能是老的
专才能精
回复

使用道具 举报

2

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
419
金钱
419
注册时间
2014-7-30
在线时间
263 小时
发表于 2016-12-6 11:07:11 | 显示全部楼层
/*-------------------------------------------------------------------------
*      Interrupt vector numbers
*-----------------------------------------------------------------------*/
#define AWU_vector                           0x03
#define CLK_CSS_vector                       0x04
#define CLK_SWITCH_vector                    0x04
#define EXTI0_vector                         0x05
#define EXTI1_vector                         0x06
#define EXTI2_vector                         0x07
#define EXTI3_vector                         0x08
#define EXTI4_vector                         0x09
#define SPI_CRCERR_vector                    0x0C
#define SPI_MODF_vector                      0x0C
#define SPI_OVR_vector                       0x0C
#define SPI_RXNE_vector                      0x0C
#define SPI_TXE_vector                       0x0C
#define SPI_WKUP_vector                      0x0C
#define TIM1_OVR_BIF_vector                  0x0D
#define TIM1_OVR_TIF_vector                  0x0D
#define TIM1_OVR_UIF_vector                  0x0D
#define TIM1_CAPCOM_CC1IF_vector             0x0E
#define TIM1_CAPCOM_CC2IF_vector             0x0E
#define TIM1_CAPCOM_CC3IF_vector             0x0E
#define TIM1_CAPCOM_CC4IF_vector             0x0E
#define TIM1_CAPCOM_COMIF_vector             0x0E
#define TIM2_OVR_UIF_vector                  0x0F
#define TIM3_OVR_UIF_vector                  0x11
#define TIM2_CAPCOM_CC1IF_vector             0x10
#define TIM2_CAPCOM_CC2IF_vector             0x10
#define TIM2_CAPCOM_CC3IF_vector             0x10
#define TIM2_CAPCOM_TIF_vector               0x10
#define TIM3_CAPCOM_CC1IF_vector             0x12
#define TIM3_CAPCOM_CC2IF_vector             0x12
#define TIM3_CAPCOM_CC3IF_vector             0x12
#define TIM3_CAPCOM_TIF_vector               0x12
#define I2C_ADD10_vector                     0x15
#define I2C_ADDR_vector                      0x15
#define I2C_AF_vector                        0x15
#define I2C_ARLO_vector                      0x15
#define I2C_BERR_vector                      0x15
#define I2C_BTF_vector                       0x15
#define I2C_OVR_vector                       0x15
#define I2C_RXNE_vector                      0x15
#define I2C_SB_vector                        0x15
#define I2C_STOPF_vector                     0x15
#define I2C_TXE_vector                       0x15
#define I2C_WUFH_vector                      0x15
#define UART2_T_TC_vector                    0x16
#define UART2_T_TXE_vector                   0x16
#define UART2_R_IDLE_vector                  0x17
#define UART2_R_LBDF_vector                  0x17
#define UART2_R_OR_vector                    0x17
#define UART2_R_PE_vector                    0x17
#define UART2_R_RXNE_vector                  0x17
#define ADC1_AWDG_vector                     0x18
#define ADC1_AWS0_vector                     0x18
#define ADC1_AWS1_vector                     0x18
#define ADC1_AWS2_vector                     0x18
#define ADC1_AWS3_vector                     0x18
#define ADC1_AWS4_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_EOC_vector                      0x18
#define TIM4_OVR_UIF_vector                  0x19
#define FLASH_EOP_vector                     0x1A
#define FLASH_WR_PG_DIS_vector               0x1A
回复

使用道具 举报

15

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2016-11-11
在线时间
20 小时
 楼主| 发表于 2016-12-6 13:25:56 | 显示全部楼层
503126063 发表于 2016-12-6 11:07
/*-------------------------------------------------------------------------
*      Interrupt vecto ...

你这个文件对应的单片机是stm8s105k4的?
专才能精
回复

使用道具 举报

15

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2016-11-11
在线时间
20 小时
 楼主| 发表于 2016-12-6 13:37:21 | 显示全部楼层
网上搜索了下,有人说IAR里的向量数比芯片手册上的大2是正常的,对的。如果是这样,那我这程序是其他原因进不了中断服务函数,和向量表的数字没关系了。
专才能精
回复

使用道具 举报

2

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
419
金钱
419
注册时间
2014-7-30
在线时间
263 小时
发表于 2016-12-6 13:43:11 | 显示全部楼层
chenjiabao 发表于 2016-12-6 13:25
你这个文件对应的单片机是stm8s105k4的?

是的。。。。
回复

使用道具 举报

2

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
419
金钱
419
注册时间
2014-7-30
在线时间
263 小时
发表于 2016-12-6 13:43:49 | 显示全部楼层
看附件。。。

iostm8s105k4.zip

10.32 KB, 下载次数: 475

回复

使用道具 举报

15

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2016-11-11
在线时间
20 小时
 楼主| 发表于 2016-12-6 14:11:48 | 显示全部楼层
调试发现:在电脑未发送数据时,UART2->SR为0xC0,电脑串口调试助手发送数据后SR变成0xF8.0xF8表示收到数据(bit5),检测到空闲总线(bit4),过载错误(bit3).这是什么情况,过载错误?
专才能精
回复

使用道具 举报

15

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2016-11-11
在线时间
20 小时
 楼主| 发表于 2016-12-6 14:21:36 | 显示全部楼层

看来进不了中断是别的原因。接收到数据后发生了“过载错误”
专才能精
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-28 22:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表