EmxGpio.hpp
1 //
2 // Created by xiong on 2022/4/13.
3 //
4 
5 #ifndef EMX_EmxGpio_HPP
6 #define EMX_EmxGpio_HPP
7 
8 #include "core/EmxTypeDef.hpp"
9 
10 namespace Emx {
15  class Gpio {
16  public:
18  enum class ActiveE : uint8_t {
19  Low = 0,
20  High,
21  };
22 
24  enum class ValueE : uint8_t {
25  Disable = 0,
26  Enable,
27  Err
28  };
29 
31  enum class DirE : uint8_t {
32  In = 0,
33  Out,
34  Err
35  };
36 
44  Gpio(int num, DirE dir, ActiveE active, ValueE def);
45 
49  virtual ~Gpio();
50 
55  int GetNum() { return m_num; }
56 
62  virtual ErrCodeE SetValue(ValueE value);
63 
68  virtual ValueE GetValue();
69 
75  virtual ErrCodeE SetDir(DirE dir);
76 
81  DirE GetDir() { return m_dir; }
82 
87  void SetActive(ActiveE active) { m_active = active; }
88 
93  ActiveE GetActive() { return m_active; }
94 
99  ValueE GetDefault() { return m_default; }
100 
101  protected:
102  int m_num;
107  };
109 }
110 
111 #endif //EMX_EmxGpio_HPP
112 
关于GPIO的通用操作,奇葩的控制方式可通过继承此类后重载实现
Definition: EmxGpio.hpp:15
DirE m_dir
Definition: EmxGpio.hpp:103
Gpio(int num, DirE dir, ActiveE active, ValueE def)
构造并初始化GPIO,并设定默认值(如果此GPIO未被初始化),set/get/def的值都是基于active极性的
ActiveE m_active
Definition: EmxGpio.hpp:104
virtual ErrCodeE SetDir(DirE dir)
配置GPIO的输入输出方向
ActiveE
GPIO有效时的极性
Definition: EmxGpio.hpp:18
DirE
GPIO输入输出
Definition: EmxGpio.hpp:31
void SetActive(ActiveE active)
配置GPIO有效极性
Definition: EmxGpio.hpp:87
int GetNum()
获取GPIO号
Definition: EmxGpio.hpp:55
int m_num
Definition: EmxGpio.hpp:102
ValueE m_value
Definition: EmxGpio.hpp:106
DirE GetDir()
获取GPIO当前输入输出状态
Definition: EmxGpio.hpp:81
ValueE m_default
Definition: EmxGpio.hpp:105
ValueE GetDefault()
获取GPIO默认值
Definition: EmxGpio.hpp:99
ActiveE GetActive()
获取GPIO极性
Definition: EmxGpio.hpp:93
virtual ValueE GetValue()
获取GPIO实际的使能状态
ValueE
GPIO状态
Definition: EmxGpio.hpp:24
@ Enable
使能有效
@ Disable
失能无效
virtual ~Gpio()
析构并去初始化GPIO
virtual ErrCodeE SetValue(ValueE value)
输出的状态下配置GPIO的使能状态
ErrCodeE
错误码定义
Definition: EmxTypeDef.hpp:29
Definition: EmxGpio.hpp:10