In the past, you need modify rtc_api.c in mbed-dev source code. From this revision, you can just use RTC function all of conditions (Normal, Reset, Stand-by, Power OFF).
Note
From now on, you do NOT need any modification for mbed-dev library because STM team updates rtc_api.c source code and support RTC function under reset & standby condition includes power off condition (You need additional VBAT back-up hardware).
Please refer following NOTE information.
/users/kenjiArai/notebook/nucleo-series-rtc-control-under-power-onoff-and-re/
uart_as_stdio/uart_as_stdio.cpp@14:4b03106ece1f, 2021-03-06 (annotated)
- Committer:
- kenjiArai
- Date:
- Sat Mar 06 08:29:51 2021 +0000
- Revision:
- 14:4b03106ece1f
run on mbed-os6.8.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kenjiArai | 14:4b03106ece1f | 1 | /* |
kenjiArai | 14:4b03106ece1f | 2 | * mbed Application program |
kenjiArai | 14:4b03106ece1f | 3 | * Redirect Standard Input/Output |
kenjiArai | 14:4b03106ece1f | 4 | * |
kenjiArai | 14:4b03106ece1f | 5 | * Copyright (c) 2021 Kenji Arai / JH1PJL |
kenjiArai | 14:4b03106ece1f | 6 | * http://www7b.biglobe.ne.jp/~kenjia/ |
kenjiArai | 14:4b03106ece1f | 7 | * https://os.mbed.com/users/kenjiArai/ |
kenjiArai | 14:4b03106ece1f | 8 | * Created: January 13th, 2021 |
kenjiArai | 14:4b03106ece1f | 9 | * Revised: March 5th, 2021 |
kenjiArai | 14:4b03106ece1f | 10 | */ |
kenjiArai | 14:4b03106ece1f | 11 | |
kenjiArai | 14:4b03106ece1f | 12 | // Include -------------------------------------------------------------------- |
kenjiArai | 14:4b03106ece1f | 13 | #include "mbed.h" |
kenjiArai | 14:4b03106ece1f | 14 | |
kenjiArai | 14:4b03106ece1f | 15 | // Definition ----------------------------------------------------------------- |
kenjiArai | 14:4b03106ece1f | 16 | |
kenjiArai | 14:4b03106ece1f | 17 | // Constructor ---------------------------------------------------------------- |
kenjiArai | 14:4b03106ece1f | 18 | static BufferedSerial pc(USBTX, USBRX, 9600); |
kenjiArai | 14:4b03106ece1f | 19 | |
kenjiArai | 14:4b03106ece1f | 20 | // RAM ------------------------------------------------------------------------ |
kenjiArai | 14:4b03106ece1f | 21 | |
kenjiArai | 14:4b03106ece1f | 22 | // ROM / Constant data -------------------------------------------------------- |
kenjiArai | 14:4b03106ece1f | 23 | |
kenjiArai | 14:4b03106ece1f | 24 | // Function prototypes -------------------------------------------------------- |
kenjiArai | 14:4b03106ece1f | 25 | |
kenjiArai | 14:4b03106ece1f | 26 | //------------------------------------------------------------------------------ |
kenjiArai | 14:4b03106ece1f | 27 | // Control Program |
kenjiArai | 14:4b03106ece1f | 28 | //------------------------------------------------------------------------------ |
kenjiArai | 14:4b03106ece1f | 29 | uint8_t readable() |
kenjiArai | 14:4b03106ece1f | 30 | { |
kenjiArai | 14:4b03106ece1f | 31 | return pc.readable(); |
kenjiArai | 14:4b03106ece1f | 32 | } |
kenjiArai | 14:4b03106ece1f | 33 | |
kenjiArai | 14:4b03106ece1f | 34 | void putc(uint8_t c) |
kenjiArai | 14:4b03106ece1f | 35 | { |
kenjiArai | 14:4b03106ece1f | 36 | char dt[4]; |
kenjiArai | 14:4b03106ece1f | 37 | dt[0] = (char)c; |
kenjiArai | 14:4b03106ece1f | 38 | pc.write(dt, 1); |
kenjiArai | 14:4b03106ece1f | 39 | } |
kenjiArai | 14:4b03106ece1f | 40 | |
kenjiArai | 14:4b03106ece1f | 41 | uint8_t getc() |
kenjiArai | 14:4b03106ece1f | 42 | { |
kenjiArai | 14:4b03106ece1f | 43 | char dt[4]; |
kenjiArai | 14:4b03106ece1f | 44 | pc.read(dt, 1); |
kenjiArai | 14:4b03106ece1f | 45 | return (uint8_t)dt[0]; |
kenjiArai | 14:4b03106ece1f | 46 | } |
kenjiArai | 14:4b03106ece1f | 47 | |
kenjiArai | 14:4b03106ece1f | 48 | //https://os.mbed.com/users/kenjiArai/code/Check_DeepSleep_os6/ |
kenjiArai | 14:4b03106ece1f | 49 | void sleep_preparation() |
kenjiArai | 14:4b03106ece1f | 50 | { |
kenjiArai | 14:4b03106ece1f | 51 | pc.enable_input(false); |
kenjiArai | 14:4b03106ece1f | 52 | sleep_manager_can_deep_sleep(); |
kenjiArai | 14:4b03106ece1f | 53 | } |