Я не вижу проблемы в вашем случае. Просто сделайте одно определение
в одном *.c. И не нужно переопределять ничего, просто вставляете во
все файлы, где константа, заголовочек, в котором: extern const SPI32directPort ADFmanualSingleWordLoad;
И всё! Так как константа определена глобально, не в теле функции, все исходники, которым дадено объявление выше, получат к ней доступ.
P.S. А в определении константы, в одном файле *.c, в присвоении значений членам структуры, вместо магических чисел, пишите ваши дефайны. Таким образом, значения для всех мест использования, определяются в одном заголовке - там, где дефайны.