STM32 Low Layer(LL) library. A rotary encoder is a type of position sensor that converts the angular position (rotation) of a knob into an output signal that is used to determine what direction the knob is being rotated.
- Good precision
- Button handling
How to add CPM to the project, check the link
CPMAddPackage(
NAME RotaryEncoder
GITHUB_REPOSITORY ximtech/RotaryEncoder
GIT_TAG origin/main)
- Start project with STM32CubeMX:
- Select: Project Manager -> Advanced Settings -> GPIO -> LL
- Generate Code
- Add sources to project:
include_directories(${includes}
${ROTARY_ENCODER_DIRECTORY}) # source directories
file(GLOB_RECURSE SOURCES ${sources}
${ROTARY_ENCODER_SOURCES}) # source files
- Then Build -> Clean -> Rebuild Project
The RotaryEncoder.h
has default configuration defines. Override them in main.h
if needed
#define ENCODER_POLLING_TICK_DELAY 1000
#define BUTTON_HOLD_TIMEOUT_MS 1000
#define BUTTON_CLICK_TIMEOUT_MS 1000
- Usage example: link