【发布时间】:2021-06-25 14:28:44
【问题描述】:
我有一块微控制器板,上面有不同的子模块。每个模块都有一个地址和可以寻址的不同寄存器。 例如:
GPIO module
-Address 0x1212
-Registers:
--InputRegister
--OutputRegister
PLL module
-Address 0x2342
-Registers:
--PhaseRegister
--ErrorRegister
--LockedInRegister
这些子模块可以通过 UART 消息进行控制,其中包含地址、寄存器和要写入的值。
我需要实现一个类来与微控制器和模块进行通信。
最简单的方法是实现这样的函数:
void send_message(int address, int parameter, int value) {
...
}
但是可以向不存在的随机地址或不属于所选模块的寄存器发出写入。
我的想法是为模块实现一个基类,并为每个子模块派生一个类,如下所示
但是如何正确声明可用的寄存器呢? 如何以适当的方式实施?
【问题讨论】:
-
send_message()中的parameter是寄存器类型吗?