【发布时间】:2019-04-18 13:49:09
【问题描述】:
我有一个非常基本的问题。我想根据 Nrf52 BLE 设备接收到的 BLE 数据打开/关闭 LED。我的问题是数据(Received_Data)是原始字节数据形式(1 个字节),我不知道如何对其执行 if 语句,或者将其转换为可以的形式。 在下面的代码中,我有:
if (Received_Data > 50)
{
nrf_gpio_pin_toggle(LED_2);
}
end
如何让 'Received_Data' 在这样的 IF 语句中使用,以便将其读取为整数或十六进制数?
case APP_UART_DATA_READY:
UNUSED_VARIABLE(app_uart_get(&data_array[index]));
index++;
if ((data_array[index - 1] == '\n') ||
(data_array[index - 1] == '\r') ||
(index >= m_ble_nus_max_data_len))
{
if (index > 1)
{
NRF_LOG_DEBUG("Ready to send data over BLE NUS");
NRF_LOG_HEXDUMP_DEBUG(Received_Data, index);
if (Received_Data > 50)
{
nrf_gpio_pin_toggle(LED_2);
}
end
这让我很头疼。我相信有人可以在 5 秒内回答这个问题。而且我已经超出了我可以花时间挖掘所有相关的 C++ 文档以找到解决方案的地步。
【问题讨论】:
-
查看
uint8数据类型。 -
@Thomas Nitpick:标准类型是
uint8_t。 -
尝试
if (Received_Data & LED_2),如果LED_2在字节内。 -
std::byte 表示原始字节。
-
Received_Data是如何定义的?