man1234567 发表于 2020-1-16 21:19 老铁,我知道错哪了,你这样也可以666 ![]() |
angmall 发表于 2020-1-16 19:26 感谢大佬,才看到 ![]() |
再啰嗦一下,举个例子: #define DQ1 P1DIR |=BIT5; P1OUT=BIT5 注意中间有个“;” 程序中拉高DQ写成 .... DQ1; ... 如果写成 #define DQ1 P1DIR |=BIT5; P1OUT=BIT5; 程序中拉高DQ写成 .... DQ1 ... 这两种都没问题,但是第一种在程序里DQ1;看上去很顺眼。所以养成好习惯是#define后边不带“;” #define DQ1 P1DIR |=BIT5; P1OUT=BIT5 程序中拉高DQ写 .... DQ1; ... |
正确答案: #define LCD_COMMAND 0; #define LCD_DATA 1; #define LCD_CLEAR_SCREEN 0x01; #define LCD_HOME 0x02; 这些凡是#define的,后边的";"全删除。因为 LCD_Write(LCD_COMMAND,0x0f); 这句编译时被替换成 LCD_Write(0;,0x0f); 0后边有个“;”明显错误。编译错误也指的是这个“;” |
#define LCD_COMMAND 0; #define LCD_DATA 1; #define LCD_CLEAR_SCREEN 0x01; #define LCD_HOME 0x02; 改成这样试试: bit LCD_COMMAND=0; bit LCD_DATA=1; unsigned char LCD_CLEAR_SCREEN=0x01; unsigned char LCD_HOME=0x02; |
给你改了一下试试。
|