Для того чтобы использовать две переменные в одном адресе на микроконтроллере STM32 с архитектурой ARM Cortex-M, можно воспользоваться ключевым словом union. Union позволяет объединить несколько переменных в одном адресе, таким образом, они будут использовать одну общую область памяти.
Например, можно объявить структуру, включающую enum и счетчик, и сделать их членами union:
```c
typedef union {
enum {
ENUM_VALUE_1,
ENUM_VALUE_2
} enumValue;
int counter;
} EnumCounterUnion;
```
При использовании этой структуры, обращение к переменным будет происходить через общий адрес:
```c
EnumCounterUnion ecu;
ecu.enumValue = ENUM_VALUE_1;
ecu.counter = 10;
// Доступ к переменной enum
printf("Enum value: %d\n", ecu.enumValue);
// Доступ к счетчику
printf("Counter: %d\n", ecu.counter);
```
Таким образом, используя union, можно избежать ситуации, когда enum сбивается с толку из-за размещения счетчика в одном адресе.