我的程序中有几个按键分别定义了它的pressd和released槽函数。
执行的代码很简单,就是写不同的命令到buff里,并且把一个标志位置1
例如:
button1_pressd()
{
buff[0] = 0x4a;
buff[1] = 0x07;
make = 1;
}
button1_released()
{
buff[0] = 0x4a;
buff[1] = 0x08;
make = 1;
}
实际的代码比这个完整一点,对make进行了加锁,意思就是这个意思。我有一个多线程会根据标志位将buff中的命令写给串口。
现在的问题是,如果非常快速的点击一下按键
通过printf信息发现只执行了pressed函数,没有执行released函数。
那位大侠知道是什么原因么?正常点击是没有问题的,pressed和released是成对出现的。
我理解的:是不是在pressed函数还在执行的过程中,按键就弹起了,这时发送released信号给主线程就处理不了。当pressed函数执行完的时候released信号已经发送完成,所以就没有收到released信号,所以就没有执行?
有什么办法克服这个问题么?