1.结构体、位域、联合的综合使用
typedef union{
struct{
MDLINT8U fault0: 1;
MDLINT8U fault1: 1;
MDLINT8U fault2: 1;
MDLINT8U fault3: 1;
MDLINT8U fault4: 1;
MDLINT8U fault5: 1;
MDLINT8U fault6: 1;
MDLINT8U fault7: 1;
}bits;
MDLINT8U byte;
}faultclass_type;
faultclass_type fsFailClass[8] = {0,};
fsFailClass[0].bits.fault0 = (fsBattLevel==Par_Low);
fsFailClass[0].bits.fault1 = (fsBattLevel==Par_Over);
fsFailClass[0].bits.fault2 = (fsBattLevel==Par_LowEE);
。。。
2.枚举的使用
typedef enum
{
Par_Normal=0,
Par_Low=1,
Par_Over=2,
Par_LowEE=4,
Par_OverEE=8
}typeParameterLevel;
3.宏定义的使用
#define STATEFLOWVAL_EXT extern
4.STM32 中的 assert_param 函数
https://blog.csdn.net/chuckfql/article/details/9107753
5.__attribute__((at(0X68000000))) 这句的主要是用法是怎么个回事
这里其实就是要搞懂2个C语言关键字就可以了. 首先,__attribute__,这个是 用来指定变量或结构位域的特殊属性,该关键字后的双括弧中的内容是属性说明。 然后是at关键字,该关键字可以用来设置变量的绝对地址,也就是你可以通过这个关键字,指定某个变量处于内存里面的某个给定的地址. 综合起来,就是设置变量处于0X68000000这个地址. |