找回密码
 立即注册
查看: 488|回复: 1

STC32G12K128 程序求解|已解决

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:17
  • 最近打卡:2024-11-26 16:38:53

5

主题

29

回帖

177

积分

注册会员

积分
177
发表于 2024-6-11 09:42:05 | 显示全部楼层 |阅读模式
本帖最后由 STCAI 于 2024-6-11 10:59 编辑

这是一段代码,在 C51里编译通过,移植到 C251时,报错了,请教如何解决?

struct abc
{
  BYTE volatile r_buffer[16];

  BYTE volatile r_length;

};


struct abc ddd;


BYTE serial_0_checksum(BYTE *p,BYTE length)
{
  BYTE temp=0,checksum=0;

  for(temp=0; temp < length; temp++)
  {
      checksum += *p++;
  }

  return checksum;
}


if (serial_0_checksum(ddd.r_buffer,(ddd.r_length - 1)) == ddd.r_buffer[ddd.r_length - 1])     /* 出错点*/
{
         
  }

错误提示: warning C188: 'parameter 2': value truncated
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:17
  • 最近打卡:2024-11-26 16:38:53

5

主题

29

回帖

177

积分

注册会员

积分
177
发表于 2024-6-11 09:57:02 | 显示全部楼层
弄成这样:

if (serial_0_checksum(ddd.r_buffer, (BYTE)(ddd.r_length - 1)) == ddd.r_buffer[(BYTE)(ddd.r_length - 1)])   

编译通过。

结帖!      
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-19 01:46 , Processed in 0.122520 second(s), 51 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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