diff --git a/bsl/csl/stm32f042/Src/pin.c b/bsl/csl/stm32f042/Src/pin.c index c1f99e7..61460a1 100644 --- a/bsl/csl/stm32f042/Src/pin.c +++ b/bsl/csl/stm32f042/Src/pin.c @@ -42,6 +42,13 @@ const uint32_t speedList[4] = { 3 }; +const uint32_t outputStateList[3] = +{ + 1, + 0, + 1 +}; + void setMode(pinNo_t pinNo, mode mode) { init(pinNo); @@ -53,7 +60,8 @@ void setMode(pinNo_t pinNo, mode mode) void setOutputState(pinNo_t pinNo, state state) { - + PIN_BASE->OSPEEDR &= 1 << (pinNo & 0x0F); + PIN_BASE->OSPEEDR |= (outputStateList[state] << (pinNo & 0x0F)); } void setPullUpDonw(pinNo_t pinNo, pullUpDown resistance)