c++ - 错误:无法将类指针转换为有符号字符 *
问题描述
我在下面遇到错误;
error: cannot convert 's8 (BNO055::*)(uint8_t, uint8_t, uint8_t*, uint8_t)' {aka 'signed
char (BNO055::*)(unsigned char, unsigned char, unsigned char*, unsigned char)'} to 's8 (*)
(u8, u8, u8*, u8)' {aka 'signed char (*)(unsigned char, unsigned char, unsigned char*,
unsigned char)'} in assignment
65 | bno055_struct.bus_write = &BNO055::write_reg;
| ^~~~~~~~~
这是我的代码;
#define BNO055_BUS_WRITE_FUNC(dev_addr, reg_addr, reg_data, wr_len) \
bus_write(dev_addr, reg_addr, reg_data, wr_len)
struct bno055_t
{
u8 chip_id; /**< chip_id of bno055 */
u16 sw_rev_id; /**< software revision id of bno055 */
u8 page_id; /**< page_id of bno055 */
u8 accel_rev_id; /**< accel revision id of bno055 */
u8 mag_rev_id; /**< mag revision id of bno055 */
u8 gyro_rev_id; /**< gyro revision id of bno055 */
u8 bl_rev_id; /**< boot loader revision id of bno055 */
u8 dev_addr; /**< i2c device address of bno055 */
BNO055_WR_FUNC_PTR; /**< bus write function pointer */
BNO055_RD_FUNC_PTR; /**<bus read function pointer */
void (*delay_msec)(BNO055_MDELAY_DATA_TYPE); /**< delay function pointer */
};
struct bno055_t bno055_struct;
bno055_struct.bus_write = &BNO055::write_reg;
s8 BNO055::write_reg(uint8_t dev_addr, uint8_t reg_addr, uint8_t *reg_data, uint8_t cnt);
我该如何解决这个问题?我正在尝试为 PX4 编写 BNO055 的驱动程序。
解决方案
推荐阅读
- rest - RESTful API 更新组的成员
- python-3.6 - 如何在 discord.py 命令中允许多个可能的响应?
- javascript - 使用 Javascript 表单 POST
- c# - 找不到包 Xamarin.LiveReload。源中不存在具有此 ID 的包:nuget.org
- java - 错误:程序类型已存在:com.google.auto.value.AutoValue$Builder
- java - Iota java api 无法找到请求目标的有效认证路径
- android - 仪表测试与层次结构中的视图 ID 不匹配
- swift - 如何在 UICollectionViewCell 中添加动画
- android - host.exp.exponent.MainApplication: java.lang.RuntimeException: NativeModuleDepsProvider 找不到类 host.exp.exponent.p 的对象
- vim - 命令字符串的 vim 键映射,例如 9:s/pat/sub/ge
: