我有一个函数接受uint8_t *,它应该是一个字符串。 我想发送一个双重函数。 我已经尝试了下面的这段代码,但它不起作用。将double转换为uint8_t *
double a = 10.98
uint8_t* p = (uint8_t*) &a;
printf("p: %u \n", p);
send_data(p);
但是,下面的代码工作,所有我想要的是用双变量ABOVE替换字符串“90”。
static const char *data[6];
data[0] = "90";
static uint8_t *test;
test = (unsigned char *) data[dataCounter] ;
send_data(test);
所以我的意思是不工作的是,函数send_data应该是通过蓝牙发送一个字符串到android手机。如果我像第一个示例代码那样执行,则字符串会正确传递。
注意:我认为它可能是因为传递给第二个参数的数据类型的差异。该函数需要3个参数。
static uint32_t send_data(uint8_t data[]){
return ble_nus_string_send(&m_nus, data, 5);
}
这是函数确定指标:
uint32_t ble_nus_string_send (ble_nus_t * p_nus,uint8_t * p_string,
uint16_t length
)
你需要发布更多数据。你是什么意思“不起作用”?你在看什么,你有什么期望NG。 –
你可能想阅读'sprintf()'。 C的基础知识,当你在这里。 – EOF
@EOF:我的坏,错过了'*' –