发明名称 一种基于堆栈的去除键抖动的软件实现方法
摘要 本发明属于光电产品应用技术领域,具体涉及一种基于堆栈的去除键抖动的软件实现方法。包括以下步骤:(1)打开设备与DSP连接的串口,设置设备主板与DSP两端的串口参数一致;分配读取串口数据的缓冲区;建立堆栈组,清空堆栈组;(2)循环监听按键的操作;(3)按键操作产生的数据,由DSP获取并通过串口发送到设备,存放到设备的临时数据缓冲区中;依次读取缓冲区中的数据;(4)设定一个时间阈值,每隔一个时间阈值,扫描一次数据缓冲区;(5)根据协议中规定的长度读取堆栈组中的每个堆栈栈顶相应数目的元素进行处理;(6)系统退出程序时,进行下一步骤;否则,重复进行步骤(2)~步骤(5);(7)关闭串口,清空堆栈组,释放为接收数据分配的内存资源。
申请公布号 CN103677282A 申请公布日期 2014.03.26
申请号 CN201210359952.3 申请日期 2012.09.24
申请人 中国航天科工集团第二研究院二O七所 发明人 贾雨生;谢晓丹
分类号 G06F3/02(2006.01)I 主分类号 G06F3/02(2006.01)I
代理机构 核工业专利中心 11007 代理人 高尚梅
主权项 一种基于堆栈的去除键抖动的软件实现方法,其特征在于:包括以下步骤:(1)打开设备与DSP连接的串口,设置设备主板与DSP两端的以下串口参数一致:波特率、数据位数、奇偶校验、停止位数;分配读取串口数据的缓冲区;建立堆栈组以同时获取N个按键操作产生的数据,N≥1;堆栈组的长度为通信协议的条数;清空堆栈组;(2)循环监听按键的操作;(3)按键操作产生的数据,由DSP获取并通过串口发送到设备,存放到设备的临时数据缓冲区中;同步控制对象,将读取操作放在同步控制对象限制的范围内以防止数据缓冲区发生读取和写入引起的冲突;依次读取缓冲区中的数据,依照DSP和设备的通信协议,根据标识位将协议规定长度的数据压入到堆栈组的相应索引位置的堆栈中;控制每条协议的标识位彼此不同,且与协议中的其它信息不同;(4)设定一个时间阈值,每隔一个时间阈值,扫描一次数据缓冲区;在一个时间阈值内,当数据缓冲区中持续有数据到来时,按键操作产生的信号仍在发送,进行步骤(3);在一个时间阈值内,数据缓冲区中没有数据到来,按键操作产生的信号已经全部获取,进行下一步骤;(5)根据协议中规定的长度读取堆栈组中的每个堆栈栈顶相应数目的元素进行处理;分析数据以保证数据的正确性;然后对数据行解析,进行系统规定的操作,同时清空堆栈组;(6)系统退出程序时,进行下一步骤;否则,重复进行步骤(2)~步骤(5);(7)关闭串口,清空堆栈组,释放为接收数据分配的内存资源。
地址 100076 北京市海淀区永定路50号