为什么宏定义会出错?

2019-07-21 07:50发布

    我想通过宏定义来操作LCD显示屏,按照下列两种方式写在头文件中,但编译出错,提示:未识别的预处理指令(Error[Pe011]: unrecognized preprocessing directive ),请问这是什么原因?

#difine LCD_RST_SET() do{GPIO_SetBits(GPIOB,GPIO_Pin_8);}while(0);

#difine LCD_RST_SET GPIO_SetBits(GPIOB,GPIO_Pin_8);


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
wxjhby
1楼-- · 2019-07-21 12:33

#difine LCD_RST_SET() do{GPIO_SetBits(GPIOB,GPIO_Pin_8);}while(0);

#difine LCD_RST_SET GPIO_SetBits(GPIOB,GPIO_Pin_8);

你再仔细看看,看哪里写错了!错的很明显!
szczyb1314
2楼-- · 2019-07-21 17:40
 精彩回答 2  元偷偷看……
hujj
3楼-- · 2019-07-21 19:23
感谢回复!不过我将您的代码复制粘贴后编译仍报错,是不是IAR哪里还没有设置好的原因?

我这样定义能够编译通过:

#define LCD_RST GPIO_Pin_8; //复位脚①
hujj
4楼-- · 2019-07-21 20:27
感谢楼上的回复!我是初学32位单片机,正在入门,很多知识还不懂。这两句代码我反复检查了多遍,仍找不到错误的原因,其中的分号我删除了也同样编译错误,还请楼上不吝赐教!
wxjhby
5楼-- · 2019-07-21 20:55
#difine
hujj
6楼-- · 2019-07-21 22:17
谢谢了!我真是太粗心了!

一周热门 更多>