你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F1根据触控按键的脉冲解码

[复制链接]
hejun96 提问时间:2020-3-4 07:34 /
      最近在调试STM32的程序,首先STM32充当主控,合泰的BS83B08C触控单片机充当触控,触控控制3个按键,这3个按键有单个按键的长短按,也有2个按键的组合长按。
      那么在按键短按时会产生脉冲信号给主控STM32,STM32收到这个脉冲信号后对其进行解码,比方说触控输出的有3个按键也就有3路脉冲,那么我分别定义STM32解码值为0x01,0x02,0x04  。根据获取到的3路脉冲分别解码得到按键的按下状态。但是如何进行解码的具体过程我不是很清楚,有坛友知道的吗?
收藏 评论18 发布时间:2020-3-4 07:34

举报

18个回答
mylovemcu 回答时间:2020-3-5 10:31:20
这种解码一般就是采用中断读取的方式解码  PWM输入捕获测量脉冲长度或者计数  具体需要看一下触控芯片发出来的是什么信号格式  

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

回答时间:2020-3-5 11:10:36
一般是通过判断按键状态保持电平状态进行判断。用定时器或者中断的方式判断第一次改变时,时间结束时所产生的的时间段。

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

hejun96 回答时间:2020-3-15 08:20:47
mylovemcu 发表于 2020-3-5 10:31
这种解码一般就是采用中断读取的方式解码  PWM输入捕获测量脉冲长度或者计数  具体需要看一下触控芯片发出 ...

我已经用示波器配合代码把自定义的协议对比,协议的解码现在都已经解到了,但是两个按键的长按还是不行,执行的却是其中的一个按键长按的效果。3个按键:COLD_LEY:0XAA  HOT_KEY:0XBB  CHILD_KEY:0XCC   现在我要同时长按COLD_KEY和HOT_KEY,同时长按10s,执行到的效果却是HOT_KEY或者是COLD_KEY长按10s的效果
mylovemcu 回答时间:2020-3-16 08:48:34
hejun96 发表于 2020-3-15 08:20
我已经用示波器配合代码把自定义的协议对比,协议的解码现在都已经解到了,但是两个按键的长按还是不行, ...

这种组合按键首先要确定触控单片机是否支持  如果只支持单个按键触发的话  再怎么修改也做不了组合按键  只有自己做了

单个按键和组合按键的处理方式不一样的  单个按键只要判断边沿或者电平就可以  组合按键的需要同时判断这两个按键的状态
hejun96 回答时间:2020-3-17 07:51:07
mylovemcu 发表于 2020-3-16 08:48
这种组合按键首先要确定触控单片机是否支持  如果只支持单个按键触发的话  再怎么修改也做不了组合按键   ...

首先已经确定触控的单片机可以支持多建同时按,而且用示波器看波形确实可以同时两路脉冲按下不松开一直有效,直到松开按键电平才结束。然后STM32主控端我也是用当两个按键都有效时,用另一个标志位计时10s然后置1,却始终达不到效果
mylovemcu 回答时间:2020-3-17 08:42:48
hejun96 发表于 2020-3-17 07:51
首先已经确定触控的单片机可以支持多建同时按,而且用示波器看波形确实可以同时两路脉冲按下不松开一直有 ...

触控单片机返回的信号是脉冲信号  还是协议数据
hejun96 回答时间:2020-3-17 08:47:07
mylovemcu 发表于 2020-3-17 08:42
触控单片机返回的信号是脉冲信号  还是协议数据

是协议数据,我已经分析过这个协议,有3个按键COLD_KEY:0XCC(25ms),HOT_KEY:0xBB(27ms),CHILD_KEY:0XAA(25ms)
hejun96 回答时间:2020-3-17 08:52:29
mylovemcu 发表于 2020-3-17 08:42
触控单片机返回的信号是脉冲信号  还是协议数据

波形类似于这种,我已经把这种波形进行分析,看下面的波形,一个尖波表示0,一个横平表示1.就得出主控端的码值是1010 1010(0XCC) =>  COLD_KEY

CHILD_KEY 解码脉冲

CHILD_KEY 解码脉冲
mylovemcu 回答时间:2020-3-17 09:25:06
hejun96 发表于 2020-3-17 08:52
波形类似于这种,我已经把这种波形进行分析,看下面的波形,一个尖波表示0,一个横平表示1.就得出主控端的 ...

确定是支持同时按键的吗  如果支持的话  组合键按下会传过来另一个协议  比如0xdd这样的  那处理方式和单个按键一样的处理方式  

如果不支持同时按键的话  好像无解的  

要不从协议判断  50ms以内收到两种协议  可以判断是组合按键  仅供参考
12下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版