123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #include "app_usbd_serial_num.h"
- #include <stdint.h>
- #include <stdio.h>
- #include <string.h>
- #include <inttypes.h>
- #include "app_usbd.h"
- #define SERIAL_NUMBER_STRING_SIZE (12)
- uint8_t g_extern_serial_number[SERIAL_NUMBER_STRING_SIZE + 1];
- static void string_create(char * p_serial_number_string)
- {
- for (uint32_t i = 0; i < strlen(p_serial_number_string); i++)
- {
- g_extern_serial_number[i] = (uint8_t)p_serial_number_string[i];
- }
- }
- void app_usbd_serial_num_generate(void)
- {
- char serial_number_string[SERIAL_NUMBER_STRING_SIZE + 1];
- const uint16_t serial_num_high_bytes = (uint16_t)NRF_FICR->DEVICEADDR[1] | 0xC000;
- const uint32_t serial_num_low_bytes = NRF_FICR->DEVICEADDR[0];
- (void)snprintf(serial_number_string,
- SERIAL_NUMBER_STRING_SIZE + 1,
- "%04"PRIX16"%08"PRIX32,
- serial_num_high_bytes,
- serial_num_low_bytes);
- string_create(serial_number_string);
- }
|