栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

nus

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

nus

c++对象编程思维体现在struct。
结构体是方便定义数据类型,struct描述需要不同类型数据的数据对象。
枚举(Enum)类型,能够列出所有可能的取值,并给它们取一个名字。

nodic官网uart介绍

## ***services_init注册NUS,nus_init.data_handler = nus_data_handler;***

static void nus_data_handler(ble_nus_evt_t *p_evt)
{

    if (p_evt->type == BLE_NUS_EVT_RX_DATA)
    {
        uint32_t err_code;

        NRF_LOG_DEBUG("nus_data_handler:Received data from BLE NUS. Writing data on UART.");
        NRF_LOG_HEXDUMP_DEBUG(p_evt->params.rx_data.p_data, p_evt->params.rx_data.length);
        
        for (uint32_t i = 0; i < p_evt->params.rx_data.length; i++)
        {
            do
            {
                err_code = app_uart_put(p_evt->params.rx_data.p_data[i]);
                if ((err_code != NRF_SUCCESS) && (err_code != NRF_ERROR_BUSY))
                {
                    NRF_LOG_ERROR("Failed receiving NUS message. Error 0x%x. ", err_code);
                    APP_ERROR_CHECK(err_code);
                }
            } while (err_code == NRF_ERROR_BUSY);
        }
        if (p_evt->params.rx_data.p_data[p_evt->params.rx_data.length - 1] == 'r')
        {
            while (app_uart_put('n') == NRF_ERROR_BUSY);
        }
    }
}
## ***ble_nus.h***
//p_evt->type(ble_nus_evt_type_t) == BLE_NUS_EVT_RX_DATA
//p_evt->params.rx_data.p_data
typedef struct
{
    ble_nus_evt_type_t         type;        
    ble_nus_t                * p_nus;       
    uint16_t                   conn_handle; 
    ble_nus_client_context_t * p_link_ctx;  
    union
    {
        ble_nus_evt_rx_data_t rx_data; 
        ble_nus_evt_rx_data_t led_data;//保存led数据
    } params;
} ble_nus_evt_t;
//evt_type
typedef enum
{
    BLE_NUS_EVT_RX_DATA,      
    BLE_NUS_EVT_TX_RDY,       
    BLE_NUS_EVT_LED_OPT,     //添加led事件类型
    BLE_NUS_EVT_COMM_STARTED, 
    BLE_NUS_EVT_COMM_STOPPED, 
} ble_nus_evt_type_t;
//the buffer with received data
typedef struct
{
    uint8_t const * p_data; 
    uint16_t        length; 
} ble_nus_evt_rx_data_t;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/928821.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号