OpenEdv-开源电子网

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

关于STM8S003F3U6单片机的定时器2中断的配置,库函数版的,我自己写的总是进不去中断

[复制链接]

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2015-8-20
在线时间
5 小时
发表于 2015-12-24 22:15:46 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 Jayq 于 2015-12-26 09:34 编辑

RT<br>
我自己写的一个中断配置,总是进不去中断:<br>
    TIM2_DeInit();<br>
    TIM2_TimeBaseInit(TIM2_PRESCALER_16,500);                //16分频,1Mhz,定时为500us中断一次。<br>
    TIM2_ClearFlag(TIM2_FLAG_UPDATE);<br>
    TIM2_UpdateRequestConfig(TIM2_UPDATESOURCE_REGULAR);<br>
    TIM2_ITConfig(TIM2_IT_UPDATE,ENABLE);<br>
    //TIM2_SetCounter(0x0000);<br>
    TIM2_Cmd(ENABLE); <br>
    enableInterrupts();<br>
<br>
我的中断处理部分是在stm8s_it中写的:(加粗的那个函数)<br>
#else /*STM8S208, STM8S207, STM8S105 or STM8S103 or STM8AF62Ax or STM8AF52Ax or STM8AF626x */<br>
/**<br>
  * @brief Timer2 Update/Overflow/Break Interrupt routine.<br>
  * @param  None<br>
  * @retval None<br>
  */<br>
INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13)//溢出中断
<br>
以上,我注意到,这里并没有关于STM8S003的中断入口定义,然后我找完了这个STM8S_it.c文件(ctrl+h找关键词),除了串口1那里外,真的没有找到STMS003的中断入口定义——我很奇怪,如果自己定义中断入口的话,使用的格式应该是:<br>
#pragma vector=**<br>
__interrupt void TIM2_IRQ()<br>
{<br>
   TIM2_ClearITPendingBit(TIM2_IT_UPDATE); //清中断标志位<br>
}<br>
<br>
以上的vector应该取多少?还是14?<br>
<br>
<br>
<br>
昨天刚接触这个单片机,今天调了一个晚上了,可能我太菜了哪里不懂,求各位大大帮帮忙<br>
<br>

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2015-8-20
在线时间
5 小时
 楼主| 发表于 2015-12-24 22:19:11 | 显示全部楼层
我的表述似乎有点不太清晰,补充一下:

我注意到stm8s_it.c中的条件编译: 
#else /*STM8S208, STM8S207, STM8S105 or STM8S103 or STM8AF62Ax or STM8AF52Ax or STM8AF626x */
没有包含STM8S003,这个有问题吗?还是我哪里理解的有问题
回复

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2015-8-20
在线时间
5 小时
 楼主| 发表于 2015-12-26 09:29:35 | 显示全部楼层
.........................................
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-12-26 20:16:05 | 显示全部楼层
帮顶
回复

使用道具 举报

2

主题

30

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2015-9-24
在线时间
41 小时
发表于 2016-1-22 17:41:15 | 显示全部楼层
有点乱    看不出你错哪里      试把enableInterrupts();换写成__enable_interrupt();
接着下面是我平时写的定时器2中断


void timer2_init()
{
  TIM2_DeInit();
  TIM2_TimeBaseInit(TIM2_PRESCALER_8, 0xff);//1ms中断一次
  TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE);
  TIM2_Cmd(ENABLE);
}

中断函数是这样子写的
INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13)
{

   
    TIM2_ClearITPendingBit(TIM2_IT_UPDATE);//清除标志位
}
回复

使用道具 举报

头像被屏蔽

52

主题

440

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1237
金钱
1237
注册时间
2013-1-9
在线时间
151 小时
发表于 2016-6-20 13:13:27 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽

52

主题

440

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1237
金钱
1237
注册时间
2013-1-9
在线时间
151 小时
发表于 2016-6-20 13:13:44 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

25

主题

84

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
468
金钱
468
注册时间
2017-6-10
在线时间
66 小时
发表于 2018-11-24 09:37:12 | 显示全部楼层
haauhaau 发表于 2016-1-22 17:41
有点乱    看不出你错哪里      试把enableInterrupts();换写成__enable_interrupt();
接着下面是我平时写 ...

这样还是进不了中断啊
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 12:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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