请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR2433 大家好!
我正在用 msp430fr2433编写代码、对 fr2433不太熟悉。
我在使用移位和乘法等操作数时遇到了困难。
这里有一个示例代码块:
void write(uint8_t GPIO,uint64_t pin,uint16_t addr,uint8_t * data,uint16_t datasize) { uint32_t myData = (addr * 32); // multiply by 32 does not work. uint32_t myData = (addr * 2); myData = (myData * 16); // i workaround the problem like this }
我将0x1100作为 addr 参数传递。 我想其他参数等不重要。
当我乘以32得到0x2000时、结果应该为0x22000。 我不知道为什么。
但是、当我尝试使用2和16来实现熵时、可以得到。 结果为0x22000。
我试图移动操作数、但这不起作用。 因为我研究过 msp430fr2433、它没有多移位操作数。 它似乎无法在一个周期内对变量移动超过1位。
我不明白为什么不能把数字乘以32。
提前感谢