#ifndef _GPIO_CLASS_H_ #define _GPIO_CLASS_H_ #include enum GPIO_MODE : uint32_t { GPIO_Speed_In = 0u, GPIO_Speed_10MHz = 1u, GPIO_Speed_2MHz = 2u, GPIO_Speed_50MHz = 3u, }; enum GPIO_CNF : uint32_t { GPIO_AI_PPO = 0u, GPIO_FI_ODO = 1u << 2, GPIO_UPDI_MPPO = 2u << 2, GPIO_none_MPDO = 3u << 2, }; enum GPIOPuPd_TypeDef { GPIO_PuPd_NOPULL = 0x00, GPIO_PuPd_UP = 0x01, GPIO_PuPd_DOWN = 0x02 }; static constexpr uint32_t GPIOA = 0u; class GpioClass { //const uint32_t pin; public: explicit constexpr GpioClass (const uint32_t _pin, const uint32_t _mode = GPIO_AI_PPO) noexcept { } void operator<< (const bool b) const { } operator bool () const { return false; } void setPuPd (GPIOPuPd_TypeDef p) { } }; #endif // _GPIO_CLASS_H_