这个问题搜了一下没有搜到答案,猜想一下应该封装好的库的宏定义值没有改变,宏定义还是要换成函数调用方式,我先占个坑,有知道的请告诉我,周末我再做小实验验证一下。
对于宏定义值有两种办法
1.定义一个参数传递函数,在库中再定义变量赋值
优点:一个函数就可以处理多个宏定义值
缺点:在库中还要定义变量,再将参数赋值给变量
2.定义一个名字跟宏定义名相同的值返回函数
优点:在库中很方便的修改,只需要在调用出再加个括号就行
缺点:多个宏定义值要定义多个值返回函数
对于宏定义IO口高低切换
定义一个参数传递函数
#define DOOR1 1
#define GetBusData1Rxd() GetP0_7()
#define SetBusDataTxdL(x) SetGPIO8(x)
U8 DOOR1LIB(void) { return DOOR1; }
U8 GetBusData1RxdLIB(void) { return GetBusData1Rxd(); }
void SetBusDataTxdLLIB(UCHAR Data) { SetBusDataTxdL(Data); }