此帖出自DSP 与 ARM 处理器论坛
最新回复
先不说你的代码具体是怎么样的,做个假设下边的代码是一个例子,config和voltage都是uint8长度,config对应有3种配置,分别是转速、重启和电源开关,通过set设置
config是一个联合体,其中的all和set共用一个字节内存,修改all=0就相当于把set中的speed,reset,power都置成0
而config中的voltage只表示电压,用一个数值表示就可以,所以它是uint8_t类型
他没有下一级配置,使用时你直接给他赋一个值就可以了
typedef struct
{
uint8_t speed:6;//转速
uint8_t reset:1;//重启
uint8_t power:1;//电源开关
}Set_t;
typedef union
{
uint8_t all;
Set_t set;
}Config_t;
typedef struct
{
Config_t config;//配置
uint8_t voltage;//电压
}System_t;
System_t system;
void test(System_t *_system)
{
_system->config.all = 0x00;//清除配置中的所有设置
_system->config.set.speed = 50;//设置转速
_system->config.set.power = 1;//开机
_system->voltage = 50;//设置电压
}
复制代码
详情
回复
发表于 2017-9-21 16:15
| ||
|
||
| |
|
|
此帖出自DSP 与 ARM 处理器论坛
点评 | ||
|
||
此帖出自DSP 与 ARM 处理器论坛
| ||
|
||
此帖出自DSP 与 ARM 处理器论坛
| ||
|
||
此帖出自DSP 与 ARM 处理器论坛
| ||
|
||
| |
|
|
|
|
| |
|
|
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
|
|
| |
|
|
EEWorld Datasheet 技术支持