When using the Force U32 macros in C++, the peripheral structs will not have copy constructors due to them being volatile. Thus, doing temp_reg = reg via typeof() will not work and cause a "ambiguous overload of operator=" error. This commit fixes the macros by reading the reg into a uint32_t value first.