找回密码
 立即注册
查看: 193|回复: 9

8H8K64U的显示屏代码移植到AI8051u上各种的错误,帮帮我

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 15:22:39

6

主题

8

回帖

96

积分

注册会员

积分
96
发表于 2025-3-6 17:51:10 | 显示全部楼层 |阅读模式
  首先是Goto Definition 找不到W25QXX_BUFFER[]。

          OLED_WriteCmd(0xB0 + y);          // 设置页地址(0xB0 ~ 0xB7)
这样调用就编译警告,
    u8  i=0xB0 + y;
OLED_WriteCmd(i);          // 设置页地址(0xB0 ~ 0xB7)

这样就正常,改了一天了没找出来问题,
大神们帮我看看吧



综合程序.rar

1.7 MB, 下载次数: 8

回复

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-3-6 17:53:00 | 显示全部楼层
在将8H8K64U的显示屏代码移植到AI8051u时,遇到`Goto Definition`找不到`W25QXX_BUFFER`的问题,可能是由于头文件路径或宏定义未正确配置。建议检查相关头文件是否包含,并确保`W25QXX_BUFFER`在代码中正确定义。

关于`OLED_WriteCmd(0xB0 + y)`编译警告,可能是由于编译器对直接使用表达式作为参数的类型检查较为严格。将表达式赋值给`u8`类型的变量`i`后,再传递给`OLED_WriteCmd`,编译器可以更明确地识别类型,从而避免警告。建议在移植过程中,注意数据类型匹配,避免隐式类型转换导致的潜在问题。

如果问题仍未解决,建议检查`OLED_WriteCmd`函数的参数类型定义,确保其与传入的数据类型一致。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-3-6 17:53:00 | 显示全部楼层
在将8H8K64U的显示屏代码移植到AI8051u时,遇到Goto Definition找不到`W25QXX_BUFFER`的问题,可能是由于头文件未正确包含或宏定义缺失。建议检查相关头文件并确保`W25QXX_BUFFER`已定义。

关于`OLED_WriteCmd(0xB0 + y)`的编译警告,可能是编译器对类型转换的严格性导致的。使用中间变量`u8 i = 0xB0 + y;`可以避免隐式类型转换问题,确保`i`在`u8`范围内。建议进一步检查`OLED_WriteCmd`函数的参数类型声明,确保其与传入参数类型一致。

建议使用调试工具逐步排查,确保代码逻辑和类型匹配。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 15:22:39

6

主题

8

回帖

96

积分

注册会员

积分
96
发表于 2025-3-6 17:53:09 | 显示全部楼层
附件是我在例程上改的代码
回复 支持 反对

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-3-6 17:53:00 | 显示全部楼层
在将8H8K64U的显示屏代码移植到AI8051u时,遇到Goto Definition找不到W25QXX_BUFFER的问题,可能是头文件未正确包含或宏定义未生效。建议检查相关头文件路径和宏定义是否一致。

对于OLED_WriteCmd(0xB0 + y)的编译警告,可能是数据类型不匹配或编译器优化策略不同。将表达式赋值给中间变量u8 i,再传递给函数,可以避免警告,确保数据类型一致。

建议:
1. 确认W25QXX_BUFFER的定义位置,并确保头文件正确包含。
2. 检查编译器设置,确保数据类型和优化策略一致。
3. 使用中间变量传递参数,避免直接传递表达式。

如问题仍未解决,建议提供更多代码细节或编译器日志,以便进一步分析。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-3-6 17:53:00 | 显示全部楼层
在将8H8K64U的显示屏代码移植到AI8051u时,遇到“Goto Definition 找不到W25QXX_BUFFER”的问题,可能是由于头文件未正确包含或宏定义缺失。建议检查相关头文件路径及宏定义。

关于`OLED_WriteCmd(0xB0 + y)`的编译警告,可能是由于类型转换问题。将`0xB0 + y`的结果存储在`u8`类型的变量`i`中,再传递给`OLED_WriteCmd`,可以有效避免警告。这是因为`0xB0 + y`可能产生超出`u8`范围的值,直接传递可能导致溢出。

建议进一步检查`y`的取值范围,确保`0xB0 + y`始终在`u8`范围内。此外,建议使用静态代码分析工具,如`lint`,以发现潜在的类型不匹配问题。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-3-6 17:53:00 | 显示全部楼层
在将8H8K64U的显示屏代码移植到AI8051u时,遇到的`Goto Definition`找不到`W25QXX_BUFFER`的问题,可能是由于头文件路径或宏定义未正确配置导致的。建议检查相关头文件是否包含正确,并确认`W25QXX_BUFFER`是否在头文件中定义。

对于`OLED_WriteCmd(0xB0 + y)`编译警告的问题,可能是因为编译器对直接传递表达式到函数参数时进行了类型检查。建议将表达式先赋值给一个`u8`类型的变量,再传递给函数,如`u8 i = 0xB0 + y; OLED_WriteCmd(i);`,这样可以避免编译器警告。

建议进一步检查代码中的数据类型和函数原型,确保所有参数类型匹配,并确认编译器设置是否正确。如果问题仍未解决,建议查阅AI8051u的编译器手册,了解具体的编译器行为和限制。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-3-6 17:53:00 | 显示全部楼层
在将8H8K64U的显示屏代码移植到AI8051U时,遇到`Goto Definition`找不到`W25QXX_BUFFER`的问题,可能是库文件未正确包含或路径设置不当。建议检查头文件路径及库文件是否完整。

关于`OLED_WriteCmd(0xB0 + y)`的编译警告,可能是编译器对直接使用表达式作为参数的类型检查较为严格。将表达式赋值给`u8`类型的临时变量`i`后再传入函数,避免了类型不匹配的潜在风险,因此编译正常。建议在移植代码时,注意数据类型和编译器警告信息,确保代码的兼容性和稳定性。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 15:22:39

6

主题

8

回帖

96

积分

注册会员

积分
96
发表于 2025-3-6 18:38:33 | 显示全部楼层
u8 xdata  W25QXX_BUFFER[5]={1};                 
u8 xdata  W25QXX_BUFFER[5];       
上面一句可以正常编译并Goto Definition正常。
         
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2025-3-6 18:58:29 | 显示全部楼层
项目路径 不要 包含 中文字符。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 09:02 , Processed in 0.171535 second(s), 105 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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