找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2409|回复: 10
打印 上一主题 下一主题
收起左侧

对两个C语言INT变量进行加减乘除操作请教下使用8位单片机怎么

[复制链接]
跳转到指定楼层
楼主
我使用的是STC12C5A60S2单片机,我想实现求3个数组的平均值,数组和变量的类型全是int型,部分代码如下:
int x[2]={-30000,30000};
int y[2]={-30000,30000};
int z[2]={-30000,30000};

经过下一段程序XYZ数组里面会被赋值,先不管赋值的溢出,默认不溢出。进行下面的程序:
X_OFFSET=(x[0]+x[1])/2;
Y_OFFSET=(y[0]+y[1])/2;
Z_OFFSET=(z[0]+z[1])/2;

结果我使用串口调试助手发出来发现数据不对,想请教一下,这段代码(求平均值的)应该怎么取处理它。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1006852 发表于 2022-2-26 20:21 | 只看该作者
首先你应描述数据是怎么个不对法。再一个确认出错不是因为int溢出?
回复

使用道具 举报

板凳
ID:879809 发表于 2022-2-26 23:09 | 只看该作者
那么串口助手发出来的数据又是什么呢?
回复

使用道具 举报

地板
ID:440403 发表于 2022-2-27 00:02 | 只看该作者
找个在线平台用纯C验证下看看
回复

使用道具 举报

5#
ID:213173 发表于 2022-2-27 10:35 | 只看该作者
楼主根据串口调试助手发出数据不对,就说是数组里面会被重新赋值是没有证据的。用Keil走单步查看数组就一目了然了。
回复

使用道具 举报

6#
ID:440814 发表于 2022-2-27 12:09 | 只看该作者
我现在把关于Z数组的赋值句段给注释掉了,现在直接用初值计算,现在是-25000+5000,这个对于int来说肯定不会溢出把,但是串口调试助手的结果看起来,是D9 F0,请看图片,输出的就是那两个字节,我算了一下是-23024,所以这样处理有问题,照理说应该是-10000的

c790f12016933a7d0e504f991a588bf.png (33.69 KB, 下载次数: 25)

c790f12016933a7d0e504f991a588bf.png

534d0ed8d2a4a9cf110c83f77f9eccb.png (3.68 KB, 下载次数: 39)

534d0ed8d2a4a9cf110c83f77f9eccb.png

7365bd4e2a9c0ad1cd2c1a53e3d1bc2.png (1.66 KB, 下载次数: 39)

7365bd4e2a9c0ad1cd2c1a53e3d1bc2.png

c790f12016933a7d0e504f991a588bf.png (33.69 KB, 下载次数: 19)

串口助手结果

串口助手结果

534d0ed8d2a4a9cf110c83f77f9eccb.png (3.68 KB, 下载次数: 25)

把Z赋值的句段注释掉了

把Z赋值的句段注释掉了

7365bd4e2a9c0ad1cd2c1a53e3d1bc2.png (1.66 KB, 下载次数: 40)

改变了Z的初值

改变了Z的初值
回复

使用道具 举报

7#
ID:440814 发表于 2022-2-27 12:10 | 只看该作者
发表于 2022-2-26 23:09
那么串口助手发出来的数据又是什么呢?

请看一下我后面的回复,我回复现在还在审核
回复

使用道具 举报

8#
ID:440814 发表于 2022-2-27 12:10 | 只看该作者
percy 发表于 2022-2-26 20:21
首先你应描述数据是怎么个不对法。再一个确认出错不是因为int溢出?

请看一下我后面的回复,现在正在审核
回复

使用道具 举报

9#
ID:625730 发表于 2022-2-27 15:37 | 只看该作者
erwtr 发表于 2022-2-27 12:09
我现在把关于Z数组的赋值句段给注释掉了,现在直接用初值计算,现在是-25000+5000,这个对于int来说肯定不 ...

最好把代码贴全一点,比如你定义的数据类型,Send_int_Data函数的定义方式等,这样更方便分析。
回复

使用道具 举报

10#
ID:879809 发表于 2022-2-27 16:50 | 只看该作者
正确答案是D8F0,你输出了D9F0,差了一位,应该不是计算错误,可能是输出有什么问题。
回复

使用道具 举报

11#
ID:123289 发表于 2022-2-28 15:55 | 只看该作者
图中每个字节表示的数是什么呢?哪个是X0?Z1?……
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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