c ++微控制器全局类/ singelton?

时间:2017-07-21 13:04:21

标签: c++ microcontroller

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

我使用的是一个串行接口类,负责配置串口(设置波特率,数据位......)。由于我只想在开始时在MCU的初始化阶段进行,我不知道如何使用类来处理它。

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

提前多多感谢。

2 个答案:

答案 0 :(得分:2)

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

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

传递引用(而不是声明一个全局实例,或者一个全局函数来获取单例)使我能够在引用{{3}的参考中为其他类编写单元测试。串口对象。

答案 1 :(得分:1)

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