找回密码
 立即注册
查看: 660|回复: 6

学习OLED12864,测试遇到的问题。|已解决

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:287
  • 最近打卡:2025-05-02 00:23:29
已绑定手机

8

主题

105

回帖

644

积分

高级会员

积分
644
发表于 2024-9-1 09:39:12 | 显示全部楼层 |阅读模式
本帖最后由 芯征程 于 2024-11-13 09:21 编辑

学习OLED12864中,在用OledDrive程序实验测试时用STC8H系列C51生成hex文件没问题。但用STC32用251生成hex文件出现以下问题。
微信图片_20240829155613.jpg


oled.c(115): warning C188: 'parameter 1': value truncated
oled.c(115): 警告 C188: “参数 1”: 值被截断

这个怎么解决。
微信图片_20240829155613.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:239
  • 最近打卡:2025-05-02 03:42:37

22

主题

283

回帖

905

积分

高级会员

积分
905
发表于 2024-9-1 11:25:14 | 显示全部楼层
搬的

KEIL C251中的错误消息“warning C188:'parameter 2':value truncated”表示传递给函数的第二个参数被截断,因为它大于参数的数据类型。在这种情况下,当将第二个参数定义为uint8_t时,它是一个8位数据类型,它只能保持255(OxFF)的最大值,因此如果传递给函数的值超过255,它将被截断并导致此警告消息。

要解决此问题,您可以将第二个参数的数据类型更改为uint16_t,或者确保传递给函数的值不超过255的最大值。
REMOVEUNUSED
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:287
  • 最近打卡:2025-05-02 00:23:29
已绑定手机

8

主题

105

回帖

644

积分

高级会员

积分
644
发表于 2024-9-1 14:12:12 | 显示全部楼层
谢谢指教。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:494
  • 最近打卡:2025-05-02 09:16:59

30

主题

347

回帖

3480

积分

荣誉版主

积分
3480
发表于 2024-9-1 15:43:05 | 显示全部楼层
说说我对此话题的理解:
编译器C251和C51在语法检验的严格程度有所不同.
因此同样的语句在不同的编译环境下, 语法检查结果不同, 有的无警告, 有的有警告了...
不是因为传入了较大的数据类型. 而是因为传入的参数有可能超出定义的数据类型.
就以楼主实例看:
114  oledWriteCmd(col & 0xf);
115  oledWriteCmd(0x10 + (col >>4));
这是一个写命令字节的语句, 其中参数是一个字节(8位)数据类型,
114 句  col参数是字节型的,  它"与运算"0x0f 以后还是字节型, 所以这一句是不会警告的.
115 句  col参数是字节型的,  它右移4位以后还是字节型, 但是它再加上0x10(常数)以后, 就有可能超出字节类型, 所以会有警告出现.
如果同意是这样的道理的话, 那么解决的方法, 就不是改为较大的数据类型了.
而是应该是将参数经运算后的结果约束为一个函数原型中定义的类型即可.

就具体实例而言, 是将运算后的结果约束为字节类型,  
则可改为:
115  oledWriteCmd((unsigned char)(0x10 + (col >>4)));
应该是不警告了.
其中红色部分是新增的字符, 如果unsigned char之前已经有过宏定义, 比如已定义为u8, 那么括弧内就写u8即可...


个人理解,仅供参考...

回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:287
  • 最近打卡:2025-05-02 00:23:29
已绑定手机

8

主题

105

回帖

644

积分

高级会员

积分
644
发表于 2024-9-2 08:53:35 | 显示全部楼层
浦江*** 发表于 2024-9-1 15:43
说说我对此话题的理解:
编译器C251和C51在语法检验的严格程度有所不同.
因此同样的语句在不同的编译环境下 ...

谢谢,太谢谢了。受教了。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:287
  • 最近打卡:2025-05-02 00:23:29
已绑定手机

8

主题

105

回帖

644

积分

高级会员

积分
644
发表于 2024-9-2 09:14:28 | 显示全部楼层
问题迎刃而解,即授人以鱼又授人以渔!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:453
  • 最近打卡:2025-05-02 08:15:40
已绑定手机

13

主题

1257

回帖

2975

积分

金牌会员

积分
2975
发表于 2024-9-2 10:34:36 | 显示全部楼层
浦江*** 发表于 2024-9-1 15:43
说说我对此话题的理解:
编译器C251和C51在语法检验的严格程度有所不同.
因此同样的语句在不同的编译环境下 ...

同样的理解{:5_300:}
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 13:28 , Processed in 0.186672 second(s), 92 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表