From 1062cf20abb9edb1d7e2c2c0ce9b4cb23977a31b Mon Sep 17 00:00:00 2001 From: Rutherther Date: Sun, 20 Oct 2024 15:28:34 +0200 Subject: [PATCH] fix: into_alternate choose alternate mode --- src/pin.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/pin.c b/src/pin.c index bf985e1..dc961f6 100644 --- a/src/pin.c +++ b/src/pin.c @@ -67,6 +67,10 @@ void pin_into_input_highspeed(pin_t *pin) { void pin_into_alternate(pin_t *pin, uint8_t alternate) { pin_mode(pin, ALTERNATE); + uint8_t index = pin->pin >> 3; + uint8_t pos = (pin->pin & 0x7) * 4; + volatile uint32_t *afr = pin->gpio->AFR; + reg_set_bits_pos(afr + index, alternate, pos, 0xF); } void pin_into_alternate_highspeed(pin_t *pin, uint8_t alternate) { pin_into_alternate(pin, alternate); -- 2.48.1