网上查找时,遇到这个问题的一般是训练网络时的内存不足,进程被系统结束了,但我这里遇到的不是这样的问题,代码运行时正常,而终止经常出现这个问题,这里说下原因:
多次发送快捷键引发的bug因为觉得用鼠标点击pycharm的“运行”和“停止”按钮很麻烦,所以想直接使用对应的快捷键 运行shift+F10、停止ctrl+F2,然后就想用digispark作为键盘,实现一键运行和停止,如下图所示,另外接了两个按键。digispark中的代码逻辑是每0.1s检测一下,如果对应的键按下,就发送相应的快捷键,也就是说如果按键一直按下,每隔0.1s就会发送一次,而pycharm在短时间接收到个停止命令就会出现上述的bug(pycharm版本2022.1),使用鼠标连续点按停止按钮同样会导致这个问题。将digispark中的代码改为每次按下只会发送一次后,问题解决。
#include "DigiKeyboard.h"
int key0 = 0;
int key1 = 0;
int flag0 = 0;
int flag1 = 0;
void setup() {
// put your setup code here, to run once:
pinMode(0, INPUT);
pinMode(1, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
key0 = digitalRead(0);
key1 = digitalRead(1);
if(key0 == 1 && flag0 == 0)
{
DigiKeyboard.sendKeyStroke(KEY_F2, MOD_CONTROL_LEFT);
flag0 = 1;
}
else if(key0 == 0)
{
flag0 = 0;
}
if(key1 == 1 && flag1 == 0)
{
DigiKeyboard.sendKeyStroke(KEY_F10, MOD_SHIFT_LEFT);
flag1 = 1;
}
else if(key1 == 0)
{
flag1 = 0;
}
DigiKeyboard.delay(100);
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)