大多数 Micropython 端口都包含一个“ micropython”模块,该模块具有名为“ ”的特定函数const()。我相信它的行为很像#defineC 中的“”,但是,它只接受整数。有人知道为什么吗?你可以在 C 中声明浮点常量,那么为什么在 micropython 中不可用呢?
我想有效地存储用于在单位之间转换的值,但其中许多是浮点值...(我考虑将它们乘以 10^x,然后在运行时除以该值,但这可能需要像只要将浮点数存储在变量中并让代码使用查找表即可)。
为什么我们只能用 声明整数micropython.const()?
干杯:)
我通过串行端口发送和接收原始二进制数据,因此我在向量中存储了预定义的消息u8。我需要计算 16 位 CRC 并在发送之前将其附加到末尾,但是我不断遇到转换和整数溢出问题。这是我之前在 C 中完成计算的方式:
void Serial::AddCRC(void *data, int len, void *checksum)
{
uint8_t *dataPtr = (uint8_t *)data;
uint8_t *crcPtr = (uint8_t *)checksum;
uint16_t crc = 0x0;
unsigned char x;
int byteCount = 0;
while ((len--) > 0) {
x = (unsigned char)(crc >> 8 ^ dataPtr[byteCount++]);
x ^= (unsigned char)(x >> 4);
crc = (uint16_t)((crc << 8) ^ (x << 12) ^ (x << 5) ^ x);
}
crcPtr[0] = crc >> 8;
crcPtr[1] = …Run Code Online (Sandbox Code Playgroud)