unsigned int + unsigned long int 输出结果异常

2020-01-12 17:22发布

ADC 采样,采3次累加后取平均,用uart 传递过程数据 发现:
1. 首次传输unsigned long int (TotalData),此时该数据应为0,实际第3,4字节传递的是别的数据。
2. 第2次累加后unsigned long int (TotalData)原意为第一次累加后的值,实际值的高2字节也不对。

请问C语言高手
1. unsinged Int + unsigned Long Int 相加需要强制转换么?
2. 第3,4字节高位为什么会出现奇怪的数据?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
t3486784401
1楼-- · 2020-01-13 09:36
 精彩回答 2  元偷偷看……
wuha
2楼-- · 2020-01-13 12:56
STM32 这种32位系统,long int跟int的位宽是一样的。都是32位。想用64位了,用 long long int。或者头文件定义的uint64_t
ajfan
3楼-- · 2020-01-13 17:32
是8051F340
machao
4楼-- · 2020-01-13 22:23
ad是几位的?
ilikemcu
5楼-- · 2020-01-14 01:07
我有个习惯,2个不同类型的数据做加减乘除等等计算,都会把比较长的那个放前面,如果有浮点数参与,可能的话,比如加和乘,都会把浮点数变量放前面,有点强迫症哈,不过这样可以减少出错概率,特别是有时候,程序运行到某个特殊点才会出现的问题。

一周热门 更多>