依然 发表于 2023-5-22 19:22:40

OLED12864编译出现错误如何解决

如何解决编译中出现的错误,下载例程编译出现oled.c(74): warning C188: 'parameter 1': value truncated警告

梁工 发表于 2023-5-22 22:38:59

这是警告,不是错误,提示变量长度被截断(截短),一般是因为变量长度不对齐导致。你贴一下被警告的语句。

依然 发表于 2023-5-23 10:33:49

void OLED_Set_Pos(unsigned char x, unsigned char y)
{
        OLED_WR_Byte(0xb0+y,OLED_CMD);//这一句被警告
        OLED_WR_Byte(((x&0xf0)>>4)|0x10,OLED_CMD);
        OLED_WR_Byte((x&0x0f)|0x01,OLED_CMD);
}   

依然 发表于 2023-5-23 10:37:39

梁工 发表于 2023-5-22 22:38
这是警告,不是错误,提示变量长度被截断(截短),一般是因为变量长度不对齐导致。你贴一下被警告的语句。 ...

OLED_WR_Byte(0xb0+y,OLED_CMD);//这一句被警告

梁工 发表于 2023-5-23 10:40:34

依然 发表于 2023-5-23 10:37
OLED_WR_Byte(0xb0+y,OLED_CMD);//这一句被警告

编译器觉得两个变量相加有可能超过1个变量的值,超过会被截断,所以警告一下。
下面的写法就不会有警告了:
OLED_WR_Byte((u8)(0xb0+y),OLED_CMD);

依然 发表于 2023-5-23 10:49:51

依然 发表于 2023-5-23 10:37
OLED_WR_Byte(0xb0+y,OLED_CMD);//这一句被警告

谢谢

依然 发表于 2023-5-23 10:50:44

梁工 发表于 2023-5-23 10:40
编译器觉得两个变量相加有可能超过1个变量的值,超过会被截断,所以警告一下。
下面的写法就不会有警告了 ...

谢谢

飞哥 发表于 2023-5-24 07:52:22

也学习了。
页: [1]
查看完整版本: OLED12864编译出现错误如何解决