error: no matching function for call to ‘SampleProcess::CalculateCrc16(uint32_t*, int)’ uint16_t tem = CalculateCrc16(&UDP_buff[8],24);
时间: 2024-03-06 12:50:03 浏览: 113
16进制数据crc16 计算工具
5星 · 资源好评率100%
根据报错信息,可以看出是函数调用时传入的参数类型不匹配导致的编译错误。函数定义中的`ptr`参数是一个指向`volatile uint8_t`类型的指针,但是在函数调用中,你传递的是一个指向`uint32_t`类型的指针。
为了解决这个问题,你需要将函数调用中的指针类型转换为`volatile uint8_t*`类型,如下所示:
```
uint16_t tem = CalculateCrc16((volatile uint8_t*)&UDP_buff[8], 24);
```
这样就可以避免编译错误了。但是,需要注意的是,将数据类型强制转换为不同的类型可能会导致数据精度的损失或者其他问题,所以一定要谨慎使用强制类型转换。
阅读全文