.h文件中使用了宏定义函数三目表达式:
#define IIC_SCL(x) do{ (x) ? \ (HAL_GPIO_WritePin(IIC_SCL_GPIO_Port,IIC_SCL_Pin,GPIO_PIN_SET)):\ (HAL_GPIO_WritePin(IIC_SCL_GPIO_Port,IIC_SCL_Pin,GPIO_PIN_RESET))\
}while(0)
.c文件中引用:
IIC_SCL ( 1 );
报错: error: #65: expected a ";"
解决方法:
#define IIC_SCL(x) do{ (x) ? \ (HAL_GPIO_WritePin(IIC_SCL_GPIO_Port,IIC_SCL_Pin,GPIO_PIN_SET)):\ (HAL_GPIO_WritePin(IIC_SCL_GPIO_Port,IIC_SCL_Pin,GPIO_PIN_RESET));\
}while(0)