Подключение энкодера ky-040 к отладочной плате STM32 базе микроконтроллера STM32F103C8T6 аналогично подключению к плате Arduino Nano (Uno), можно выбрать три свободные цифровых входа и использовать их для подключения энкодера.
Энкодер ky-040 имеет пять контактов (энкодер > STM32):
- GND > G
- + > 3.3
- CLK > любой цифровой вход
- DT > любой цифровой вход
- SW > любой цифровой вход (Кнопка энкодера)
#define pinA PB11 #define pinB PB10 #define SW PB1 #include <STM32_Encoder.h> // http://rcl-radio.ru/wp-content/uploads/2020/01/STM32_Encoder.zip STM32_Encoder encoder(pinA, pinB); int position = 0; void Read(){encoder.readAB();} void setup(){ encoder.begin(); attachInterrupt(digitalPinToInterrupt(pinA),Read,CHANGE); attachInterrupt(digitalPinToInterrupt(pinB),Read,CHANGE); Serial.begin(115200); // encoder.setPosition(0);// начальная позиция pinMode(SW,INPUT); // SW } void loop(){ if(position != encoder.getPosition()){ position = encoder.getPosition(); Serial.println(position);} if(digitalRead(SW)==LOW){Serial.println("button");delay(300);} }
Перед заливкой скетча в STM32 Вам необходимо ознакомиться со следующей статьей — STM32 Arduino IDE