Use STM32 device ID as default ID for Multiprotocol. Has the advantage that this is persistent even the flash emulated EEPROM is wiped by reprogramming.

This commit is contained in:
Arne Schwabe 2016-10-31 18:47:15 +01:00
parent 199d2cf851
commit 307103f95a

View File

@ -1017,7 +1017,14 @@ static uint32_t random_id(uint16_t adress, uint8_t create_new)
return id; return id;
} }
// Generate a random ID // Generate a random ID
#if defined STM32_BOARD
#define STM32_UUID ((uint32_t *)0x1FFFF7E8)
if (!create_new)
id = STM32_UUID[0] ^ STM32_UUID[1] ^ STM32_UUID[2];
else
#else
id = random(0xfefefefe) + ((uint32_t)random(0xfefefefe) << 16); id = random(0xfefefefe) + ((uint32_t)random(0xfefefefe) << 16);
#endif
for(uint8_t i=0;i<4;i++) for(uint8_t i=0;i<4;i++)
{ {
eeprom_write_byte((EE_ADDR)adress+i,id); eeprom_write_byte((EE_ADDR)adress+i,id);