C++微控制器全局类/辛格尔顿?

c++ microcontroller global classes/singelton?

本文关键字:控制器 全局 C++      更新时间:2023-10-16

我目前正在微控制器上使用C++,我遇到了一个问题,我不知道正确的实现是什么:

例如,我使用一个串行接口类,该类负责配置串行端口(设置波特,数据位...由于我只想在开始时在MCU的初始化阶段执行此操作,因此我不知道如何处理类。

我应该创建一个在初始化阶段创建的全局类/单例(这样我可以保留我的串行参数(,还是每次需要使用串行接口时创建一个类(但这会重新打开我的串行行 - 或者我是否将构造函数留空(?

提前非常感谢。

我尽量避免全局变量和单例。

我定义了一个类,其中包含一个接受路径名和配置以打开端口的构造函数,以及一个关闭端口的析构函数。 然后,我在main(...)中声明了它的static本地实例,并将对它的引用传递给需要使用该端口的其他类的构造函数。

传递引用(而不是声明全局实例或全局函数以获取单例(使我能够为其他类编写单元测试,其中测试在对模拟串行端口对象的引用中传递。

您正在征求意见,因为所有选项都有效。
我确实相信创建一个单一实例来存储所需的配置和资源是一个很好的方法。通过这种方式,您可以实现 RAII 习语,并在需要时轻松访问。