OpenEdv-开源电子网

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

stm8l051 time 进不了中断 不知道为啥 程序已贴 望有高人指点 谢谢

[复制链接]

3

主题

15

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2016-7-6
在线时间
2 小时
发表于 2016-7-6 09:36:47 | 显示全部楼层 |阅读模式
求大神看看我的time为啥不启动  我试了tim1 tim2 timn4   试了内部LSE HSE 晶振 都不行  就是进不了中断郁闷  大神帮俺看看呗



#include "stm8l15x.h"


static void CLK_Config(void);
static void TIM2_Config(void);

void delayms(unsigned int w);
void delayms(unsigned int w)
{
    unsigned int i,j;
    for(i=0;i<w;i++)
      for(j=0;j<1000;j++);
}
/* 函数功能 ------------------------------------------------------------------*/

/*******************************************************************************
  * @函数名称        main
  * @函数说明   主函数
  * @输入参数   无
  * @返回参数   无
*******************************************************************************/
void main(void)
{
   /* CLK configuration -------------------------------------------*/
  CLK_Config();

   /* TIM2 configuration -------------------------------------------*/
  TIM2_Config();

  GPIO_Init(GPIOC, GPIO_Pin_6, GPIO_Mode_Out_PP_High_Fast);

    /* --使能 interrupts ---*/
  enableInterrupts();

  while (1)
  {



  }
}


static void CLK_Config(void)
{
    /* ------使能 TIM2 时钟外设单元------ */
// CLK_PeripheralClockConfig(CLK_Peripheral_TIM2, ENABLE);
/* High speed internal clock prescaler */
  CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_2);

  /*Enables or disables the clock switch execution*/
  CLK_SYSCLKSourceSwitchCmd(ENABLE);

  /*Configures the system clock (SYSCLK)
  * Select HSI as system clock source
  */
  CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSI);

  /*HSI used as system clock  
  * Returns the clock source used as system clock
  */
  while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_HSI)
  {}

  /* Enable TIM1 CLK */
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM2, ENABLE);
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM1, ENABLE);
}

/*******************************************************************************
  * @函数名称        TIM2_Config
  * @函数说明   
  * @输入参数   
  * @输出参数   无
  * @返回参数   无
*******************************************************************************/
static void TIM2_Config(void)
{



  TIM2_ETRClockMode1Config(TIM2_ExtTRGPSC_DIV8,//不分频
                           TIM2_ExtTRGPolarity_Inverted,//触发极性
                           0x00); //滤波  低功耗模式下滤波关掉

  /* Time Base configuration */
  TIM2_TimeBaseInit(128, TIM2_CounterMode_Up, 8191);

  /* --清除TIM2溢出更新标志位-- */
  TIM2_ClearFlag(TIM2_FLAG_Update);
  /* --使能TIM2溢出更新中断-- */
  TIM2_ITConfig(TIM2_IT_Update, ENABLE);

  /* TIM2 counter enable */
  TIM2_Cmd(ENABLE);
}

/******************* (C) COPYRIGHT 2012 STMicroelectronics *****END OF FILE****/




INTERRUPT_HANDLER(TIM2_UPD_OVF_TRG_BRK_IRQHandler,19)
{
/* In order to detect unexpected events during development,
   it is recommended to set a breakpoint on the following instruction.
*/
  if(TIM2_GetITStatus(TIM2_IT_Update)==SET)
  {
    TIM2_ClearITPendingBit(TIM2_IT_Update);
    GPIO_ToggleBits(GPIOC, GPIO_Pin_6);
  }

}


求大神看看我的time为啥不启动  我试了tim1 tim2 timn4   试了内部LSE HSE 晶振 都不行  就是进不了中断郁闷  大神帮俺看看呗


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

使用道具 举报

3

主题

15

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2016-7-6
在线时间
2 小时
 楼主| 发表于 2016-7-6 09:37:40 | 显示全部楼层
实验了好多种  仿真也进不了中断  好像没启动是滴
回复 支持 反对

使用道具 举报

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2015-11-21
在线时间
25 小时
发表于 2016-7-6 11:23:27 | 显示全部楼层
你是做输入捕获的?
回复 支持 反对

使用道具 举报

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2015-11-21
在线时间
25 小时
发表于 2016-7-6 11:24:34 | 显示全部楼层
要初始化输入通道和使能输入通道
TIMx_ICInit
TIMx_CCxCmd
回复 支持 反对

使用道具 举报

3

主题

15

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2016-7-6
在线时间
2 小时
 楼主| 发表于 2016-7-6 14:35:01 | 显示全部楼层
keyer 发表于 2016-7-6 11:24
要初始化输入通道和使能输入通道
TIMx_ICInit
TIMx_CCxCmd

我就是定时用。。。
回复 支持 反对

使用道具 举报

3

主题

15

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2016-7-6
在线时间
2 小时
 楼主| 发表于 2016-7-6 14:35:31 | 显示全部楼层
keyer 发表于 2016-7-6 11:23
你是做输入捕获的?

单纯的定时。。。
回复 支持 反对

使用道具 举报

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2015-11-21
在线时间
25 小时
发表于 2016-7-6 14:49:16 | 显示全部楼层
魏明上仙 发表于 2016-7-6 14:35
单纯的定时。。。

我也不太清楚,我用的TIM4就是好的啊
void TIM4_Init(void)
{
  CLK_PeripheralClockConfig(CLK_Peripheral_TIM4,ENABLE);
  TIM4_DeInit();
  /**************************************定时器计算方式****************************************/   
  //16分频、250周期
  //systime=16m
  //1/16m=0.0625us  1024分频后
  //计数器clk=1024*0.0625us=64us
  //960us=15*64us 故周期是15
  /**************************************定时器计算方式****************************************/  
  TIM4_TimeBaseInit(TIM4_Prescaler_1024,30);//960us
  TIM4_ITConfig(TIM4_IT_Update,ENABLE);//使能溢出中断
  TIM4_Cmd(ENABLE);//开启定时器
}
回复 支持 反对

使用道具 举报

3

主题

15

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2016-7-6
在线时间
2 小时
 楼主| 发表于 2016-7-6 15:03:14 | 显示全部楼层
keyer 发表于 2016-7-6 14:49
我也不太清楚,我用的TIM4就是好的啊
void TIM4_Init(void)
{

我试试
回复 支持 反对

使用道具 举报

3

主题

15

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2016-7-6
在线时间
2 小时
 楼主| 发表于 2016-7-6 15:25:28 | 显示全部楼层

我嘞个去我终于进入中断了   原来我少了一个这个   TIM4_DeInit();   困扰我多年的难题终于解决了太感谢了  ,我看其他的资料都没有这个 厉害。
回复 支持 反对

使用道具 举报

3

主题

15

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2016-7-6
在线时间
2 小时
 楼主| 发表于 2016-7-6 15:25:53 | 显示全部楼层
keyer 发表于 2016-7-6 14:49
我也不太清楚,我用的TIM4就是好的啊
void TIM4_Init(void)
{

我少了个 TIM2_DeInit();
回复 支持 反对

使用道具 举报

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2015-11-21
在线时间
25 小时
发表于 2016-7-6 16:11:26 | 显示全部楼层
魏明上仙 发表于 2016-7-6 15:25
我少了个 TIM2_DeInit();

解决了就好
回复 支持 反对

使用道具 举报

6

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2016-8-25
在线时间
50 小时
发表于 2016-11-1 09:58:39 | 显示全部楼层
STM8L051的tim1单纯计时的中断,怎么还是进不去...谁知道怎么解决的么
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 05:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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