Bug in HAL RTC at IS_RTC_MONTH macro ?
Hi,
I am working with the HAL library using the RTC module. I think I found a bug in the
stm32l1xx_hal_rtc.h file.
The file stm32l1xx_hal_rtc.h has the following code
...
#define RTC_MONTH_JULY ((uint8_t)0x07)
#define RTC_MONTH_AUGUST ((uint8_t)0x08)#define RTC_MONTH_SEPTEMBER ((uint8_t)0x09)#define RTC_MONTH_OCTOBER ((uint8_t)0x10) // ------------> But not 0x0A#define RTC_MONTH_NOVEMBER ((uint8_t)0x11)//
------------>
But not 0x0B#define RTC_MONTH_DECEMBER ((uint8_t)0x12)//
------------>
But not 0x0C#define IS_RTC_MONTH(MONTH) (((MONTH) >= (uint32_t)1) && ((MONTH) <= (uint32_t)12))
...
IS_RTC_MONTH macro checks if MONTH is <= 12, but RTC_MONTH_OCTOBER has value 0x10 which is 16 > 12,
RTC_MONTH_NOVEMBER has value 0x11 (17 > 12) and RTC_MONTH_DECEMBER has value 0x12 (18 > 12). Therefore, the checks with these 3 months will fail.
The 2 available options are:
Redefine
RTC_MONTH_OCTOBER,
RTC_MONTH_NOVEMBER and
RTC_MONTH_DECEMBER
Check that MONTH is between 0x00 and 0x09 or 0x10 and 0x12.
Is it a bug?
