Skip to content

Commit 8ed0fde

Browse files
committed
refactor: update STM32LowPower callbacks and pin types for ArduinoCore-API integration
Signed-off-by: Aymane Bahssain <aymane.bahssain@st.com>
1 parent 29e2aba commit 8ed0fde

4 files changed

Lines changed: 13 additions & 14 deletions

File tree

src/STM32LowPower.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ void STM32LowPower::shutdown(uint32_t ms)
145145
* In case of SHUTDOWN_MODE only, Wakeup pin capability is activated
146146
* @retval None
147147
*/
148-
void STM32LowPower::attachInterruptWakeup(uint32_t pin, voidFuncPtrVoid callback, uint32_t mode, LP_Mode LowPowerMode)
148+
void STM32LowPower::attachInterruptWakeup(pin_size_t pin, voidFuncPtr callback, PinStatus mode, LP_Mode LowPowerMode)
149149
{
150150
attachInterrupt(pin, callback, mode);
151151

@@ -166,7 +166,7 @@ void STM32LowPower::attachInterruptWakeup(uint32_t pin, voidFuncPtrVoid callback
166166
* mode.
167167
* @retval None
168168
*/
169-
void STM32LowPower::enableWakeupFrom(HardwareSerial *serial, voidFuncPtrVoid callback)
169+
void STM32LowPower::enableWakeupFrom(HardwareSerial *serial, voidFuncPtr callback)
170170
{
171171
if (serial != NULL) {
172172
_serial = &(serial->_serial);
@@ -184,7 +184,7 @@ void STM32LowPower::enableWakeupFrom(HardwareSerial *serial, voidFuncPtrVoid cal
184184
* @param data: optional pointer to callback data parameters (default NULL).
185185
* @retval None
186186
*/
187-
void STM32LowPower::enableWakeupFrom(STM32RTC *rtc, voidFuncPtr callback, void *data)
187+
void STM32LowPower::enableWakeupFrom(STM32RTC *rtc, voidFuncPtrParam callback, void *data)
188188
{
189189
if (rtc == NULL) {
190190
rtc = &(STM32RTC::getInstance());

src/STM32LowPower.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ enum LP_Mode : uint8_t {
5555
SHUTDOWN_MODE
5656
};
5757

58-
typedef void (*voidFuncPtrVoid)(void) ;
5958

6059
class STM32LowPower {
6160
public:
@@ -89,10 +88,10 @@ class STM32LowPower {
8988
shutdown((uint32_t)ms);
9089
}
9190
#endif
92-
void attachInterruptWakeup(uint32_t pin, voidFuncPtrVoid callback, uint32_t mode, LP_Mode LowPowerMode = SHUTDOWN_MODE);
91+
void attachInterruptWakeup(pin_size_t pin, voidFuncPtr callback, PinStatus mode, LP_Mode LowPowerMode = SHUTDOWN_MODE);
9392

94-
void enableWakeupFrom(HardwareSerial *serial, voidFuncPtrVoid callback);
95-
void enableWakeupFrom(STM32RTC *rtc, voidFuncPtr callback, void *data = NULL);
93+
void enableWakeupFrom(HardwareSerial *serial, voidFuncPtr callback);
94+
void enableWakeupFrom(STM32RTC *rtc, voidFuncPtrParam callback, void *data = NULL);
9695

9796
private:
9897
bool _configured; // Low Power mode initialization status

src/low_power.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
******************************************************************************
1919
*/
2020

21-
#include "Arduino.h"
2221
#include "low_power.h"
2322
#include "stm32yyxx_ll_cortex.h"
2423
#include "stm32yyxx_ll_pwr.h"
@@ -202,7 +201,7 @@ void LowPower_init()
202201
* @param mode: pin mode (edge or state). The configuration have to be compatible.
203202
* @retval None
204203
*/
205-
void LowPower_EnableWakeUpPin(uint32_t pin, uint32_t mode)
204+
void LowPower_EnableWakeUpPin(pin_size_t pin, PinStatus mode)
206205
{
207206
PinName p = digitalPinToPinName(pin);
208207
#if defined(PWR_WAKEUP_SELECT_0) || defined(PWR_WAKEUP1_SOURCE_SELECTION_0)
@@ -975,10 +974,10 @@ void LowPower_shutdown(bool isRTC)
975974
* with which low power mode the UART is compatible.
976975
* Warning This function will change UART clock source to HSI
977976
* @param serial: pointer to serial
978-
* @param FuncPtr: pointer to callback
977+
* @param callback: pointer to callback
979978
* @retval None
980979
*/
981-
void LowPower_EnableWakeUpUart(serial_t *serial, void (*FuncPtr)(void))
980+
void LowPower_EnableWakeUpUart(serial_t *serial, voidFuncPtr callback)
982981
{
983982
#if defined(UART_WKUP_SUPPORT)
984983
#ifdef IS_UART_WAKEUP_SELECTION
@@ -1009,7 +1008,7 @@ void LowPower_EnableWakeUpUart(serial_t *serial, void (*FuncPtr)(void))
10091008
UNUSED(serial);
10101009
#endif
10111010
/* Save callback */
1012-
WakeUpUartCb = FuncPtr;
1011+
WakeUpUartCb = callback;
10131012
}
10141013

10151014
/**

src/low_power.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
/* Includes ------------------------------------------------------------------*/
4141
#include "stm32_def.h"
4242
#include "uart.h"
43+
#include "Arduino.h"
4344

4445
#if defined(HAL_PWR_MODULE_ENABLED) && !defined(HAL_PWR_MODULE_ONLY)
4546

@@ -53,8 +54,8 @@ extern "C" {
5354
/* Exported functions ------------------------------------------------------- */
5455

5556
void LowPower_init();
56-
void LowPower_EnableWakeUpPin(uint32_t pin, uint32_t mode);
57-
void LowPower_EnableWakeUpUart(serial_t *serial, void (*FuncPtr)(void));
57+
void LowPower_EnableWakeUpPin(pin_size_t pin, PinStatus mode);
58+
void LowPower_EnableWakeUpUart(serial_t *serial, voidFuncPtr callback);
5859
void LowPower_sleep(uint32_t regulator);
5960
void LowPower_stop(serial_t *obj);
6061
void LowPower_standby();

0 commit comments

Comments
 (0)