编码器
本文档包含有关如何将 EC11 兼容编码器添加到您的设备的信息。
设置
需要的代码
要为您的键盘设置编码器,您必须在 #[keyboard] 宏调用中添加 encoders,并且您的键盘必须实现 DeviceWithEncoders 特性。
您可以通过使用 setup_encoders! 宏轻松完成此操作:
use rumcake::keyboard;
#[keyboard( // 在键盘宏调用中的某处 ... encoders)]struct MyKeyboard;
use rumcake::keyboard::DeviceWithEncoders;impl DeviceWithEncoders for MyKeyboard { type Layout = Self;
setup_encoders! { Encoder { sw_pin: input_pin!(PB12, EXTI12), sw_pos: (0, 0), output_a_pin: input_pin!(PB2, EXTI2), output_b_pin: input_pin!(PB1), cw_pos: (0, 1), ccw_pos: (0, 2), }, Encoder { sw_pin: input_pin!(PA11, EXTI11), sw_pos: (1, 0), output_a_pin: input_pin!(PA3, EXTI3), output_b_pin: input_pin!(PA1), cw_pos: (1, 1), ccw_pos: (1, 2), }, };}
use rumcake::keyboard::{build_layout, KeyboardLayout};impl KeyboardLayout for MyKeyboard { build_layout! { { [ A B C ] [ D E F ] } { [ G H I ] [ J K L ] } }}sw_pin 对应于连接到编码器按钮的引脚。 output_a_pin 和 output_b_pin 对应于随着编码器旋转而脉冲的引脚。
编码器通过将其输出映射到布局上的位置来工作。
type Layout = Self 告诉 rumcake 将编码器事件重定向到 MyKeyboard 实现的 KeyboardLayout。
在上面的示例中,以下是以下映射:
- 编码器 1 按钮:
A键(或第二层上的G) - 编码器 1 顺时针旋转:
B键(或第二层上的H) - 编码器 1 逆时针旋转:
C键(或第二层上的I) - 编码器 2 按钮:
D键(或第二层上的J) - 编码器 2 顺时针旋转:
H键(或第二层上的K) - 编码器 2 逆时针旋转:
I键(或第二层上的L)
待办事项列表
- Via(l) 支持