OpenEdv-开源电子网

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

求助:STM8触摸按键库的应用问题

[复制链接]

1

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2020-11-27
在线时间
4 小时
发表于 2020-12-18 10:11:03 | 显示全部楼层 |阅读模式
1金钱
打算用ST官方提供的最新的按键触摸库来做个东西,研究了好会儿,个人感觉只要stm8_tsl_conf.h里面定时器和引脚定义OK后,再调用TSL_Init()初始化,然后死循环里TSL_Action()应该就可以了吧?可是没反应啊,硬件和管脚配置没问题的,旧版的触摸库验证过可行,打算用新版V2.5.0试试,我怀疑是定时器中断那部分的问题,可是怎么弄都不行,求用过的大神帮忙,第一次发帖,请多关照!

stm8s_ts_driver_um.chm

1.43 MB, 下载次数: 1

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

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2020-11-27
在线时间
4 小时
 楼主| 发表于 2020-12-18 14:05:11 | 显示全部楼层
Error[Li006]: duplicate definitions for "_interrupt_25"; in "F:\STM8\Demo\IAR\Debug\Obj\stm8_tsl_timebase.o", and "F:\STM8\Demo\IAR\Debug\Obj\stm8s_it.o"
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2020-11-27
在线时间
4 小时
 楼主| 发表于 2020-12-18 14:07:18 | 显示全部楼层
//==============================================================================
//
// 3) GENERIC TIMEBASE TIMER SELECTION (TIMTICK)
//
// Set the generic timebase timer.
//
// The timer you select must be a *basic 8-bit timer* and must be different
// of the TIMACQ timer described above (TIM4 for example).
//
// Warning: The selected timer update/overflow interrupt vector must point to
// the TSL_Timer_ISR() interrupt routine.
//
//==============================================================================

#define TIMTICK  (TIM4)
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2020-11-27
在线时间
4 小时
 楼主| 发表于 2020-12-18 14:11:06 | 显示全部楼层
配置文件里要求这个TIM4中断向量需指向TSL_Timer_ISR() 这个函数,可我把这个函数引用到TIM4中断函数里就Error[Pa037]: function type not callable F:\STM8\Demo\USER\stm8s_it.c 549 ,如果不引用么就是2楼的那个报错,郁闷啊,之前引用中断函数很简单啊,中断文件中引用定义函数的头文件就可以直接引用了,到了这里怎么不行了。。。。
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2020-11-27
在线时间
4 小时
 楼主| 发表于 2020-12-18 14:11:47 | 显示全部楼层
#if (RTOS_MANAGEMENT > 0)
void TSL_Timer_ISR(void)
#else
INTERRUPT_HANDLER(TSL_Timer_ISR, 23)
#endif
{

  TIMTICK->SR1 = 0;      // clear overflow flag

  TSL_Tick_Base++;
  TSL_Timer_Check_10ms_Tick();

  if (TSL_Tick_Flags.b.User1_Start_100ms) /* Application request */
  {
    TSL_Tick_Flags.b.User1_Start_100ms = 0;
    TSL_Tick_Flags.b.User1_Flag_100ms = 0;
    TSL_Tick_User1 = (TICK_FACTOR_10MS * 10);
  }

  if (TSL_Tick_Flags.b.User2_Start_100ms) /* Application request */
  {
    TSL_Tick_Flags.b.User2_Start_100ms = 0;
    TSL_Tick_Flags.b.User2_Flag_100ms = 0;
    TSL_Tick_User2 = (TICK_FACTOR_10MS * 10);
  }

  if (TSL_Tick_User1 > 0)
  {
    TSL_Tick_User1--;
    if (TSL_Tick_User1 == 0)
    {
      TSL_Tick_Flags.b.User1_Flag_100ms = 1; /* Give information to Application */
    }
  }

  if (TSL_Tick_User2 > 0)
  {
    TSL_Tick_User2--;
    if (TSL_Tick_User2 == 0)
    {
      TSL_Tick_Flags.b.User2_Flag_100ms = 1; /* Give information to Application */
    }
  }
#if TIMER_CALLBACK
  USER_TickTimerCallback();
#endif
}
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2020-11-27
在线时间
4 小时
 楼主| 发表于 2020-12-18 15:42:02 | 显示全部楼层
stm8s_it.c里面的中断函数
INTERRUPT_HANDLER(TIM4_UPD_OVF_IRQHandler, 23)
{
   TSL_Timer_ISR();
}
求明白的大神解惑
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2020-11-27
在线时间
4 小时
 楼主| 发表于 2020-12-24 10:56:35 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

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

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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