#include "xs_id.h" #include "main.h" #include "rng.h" extern RNG_HandleTypeDef hrng; void xs_id_generate_random_mac(mac_t* id) { id->mac[0] = 0x00; // 00 80 E1 是STM32的MAC地址前三位 id->mac[1] = 0x80; id->mac[2] = 0xE1; uint32_t random0 = 0; uint32_t random1 = 0; uint32_t random2 = 0; HAL_RNG_GenerateRandomNumber(&hrng, &random0); HAL_RNG_GenerateRandomNumber(&hrng, &random1); HAL_RNG_GenerateRandomNumber(&hrng, &random2); id->mac[3] = random0 % 256; id->mac[4] = random1 % 256; id->mac[5] = random2 % 256; } void xs_id_get_uuid(device_id_t* id) { // UID_BASE uint8_t* uid_base = (uint8_t*)UID_BASE; for (int32_t i = 0; i < 12; i++) { id->id[i] = uid_base[i]; } return; }