? ? ? ? 1.#ifdef和#if defined的区别
//此种情况只能在两者中选择是否有定义
#ifdef xxx
......
#else
......
#endif
//此种情况可以在多个中选择是否有定义
#if defined xxx1
......
#elif defined xxx2
......
#elif defined xxx3
......
#endif
? ? ? ? 2.在Keil_v5上使用#if?defined
void hal_tim2_scan(void)
{
sTIM2[0].cnt++;
if(sTIM2[0].cnt == sPWM_LED.duty)
{
#if defined(HS5_UP)
hal_io_out_bit16(0x0000);
#endif
#if defined(HS5_DOW)
hal_io_out_bit8(0x00);
#endif
}
else if(sTIM2[0].cnt == 0)
{
#if defined(HS5_UP)
hal_io_out_bit16(sPWM_LED.dat);
#endif
#if defined(HS5_DOW)
hal_io_out_bit8(sPWM_LED.dat);
#endif
}
}
- 上方可以看到,我们定义了两个条件HS5_DOW和HS5_UP,若需要使用则可以在keil5里面的工程选项里面的Define添加上HS5_UP和HS5_DOW即可,如下图所示。
?
?
- ?如果是在同一个工程,两块相同的单片机共用一份代码上是非常方便的。如下图所示
?
?
|