在线时间48 小时
UID2057887
ST金币117
蝴蝶豆0
注册时间2016-11-26
该用户从未签到
高级会员
- 最后登录
- 2021-1-9
|
几年前在此发过类似的文章,见<https://www.stmcu.org.cn/module/forum/thread-614394-1-1.html>。
但还觉得不够简单,今天发一个更简单的,除去设置、打印、指示灯、延迟语句后,只用了两行指令(见//***标记)。
代码如下:
//test 旋转编码器 STM32F103 20210106.ino
long keyN;
void setup() {
pinMode (PA13, INPUT_PULLUP);
pinMode (PA14, INPUT_PULLUP);
pinMode (PC13, OUTPUT);
Serial.begin (115200);
}
void loop() {
if ( digitalRead( PA13 ) & digitalRead( PA14 )){ // ***
digitalWrite( PC13, !digitalRead( PC13 ) ); // 指示灯
Serial.println( keyN ); // 打印
delay(2); // 延迟
keyN = keyN + !digitalRead(PA13) - !digitalRead(PA14); //***
}
}
注:
1。延迟时间可根据具体需求自定义大小。
2。GPIO可按需任选,这里偷懒用了SWD引脚,最好改用其他脚。
3。好像不能再精简到一行指令就能完成了,因为有时序关系。
4。望各位不吝指教。
|
|