[原创] 【AT32WB415测评】之三BLE例程的大体流程及%1U

ddllxxrr   2022-8-13 10:47 楼主

         今天看了例程的实现文档,就是跟着BLE例程的那个文件,觉得BLE协议还是挺复杂的。但很高兴用到了ARM9,平时工作只是ARM7:

      ble1.jpg

 

BLE的广播和连接,我想用下边两幅图说明:

广播:

ble3.jpg

连接:

ble4.jpg 连接了,对设备而言只能一对一通讯。也就是上表里的一支。

至于怎么建立通讯机制PDF文档已经说很清楚了,这里不重复。

主要是通过程SERVICE和特征:

 

Service用于将数据分解为逻辑实体,并包含称为Characteristic的特定数据块。Service可以具有一个
或多个Characteristic,并且每个Service通过称为UUID的唯一数字ID将其自身与其他服务区分开来,
UUID可以是16位(对于正式采用的BLE服务)或128位(对于自定义服务)。
可以在Bluetooth Developer Portal的“Service”页面上看到正式采用的BLE服务的完整列表。 例
如,如果您查看心率服务,我们可以看到这个官方采用的服务具有0x180D的16位UUID,并且包含
多达3个Characteristic,但只有第一个是必需的:心率测量,身体传感器位置和心率控制点(Heart
Rate Measurement, Body Sensor Location and Heart Rate Control Point)。

我想把例程改一下,就是我可以输入0x03和0x04,这不也算是会了吗?(以前我都这么干,想先调通再说,可是有些东西到现在也没有用上,只是个知识贮备)

但我看到发语句时顿时蒙了:

static int gattc_write_req_ind_handler(ke_msg_id_t const msgid, struct gattc_write_req_ind const *param,
                                      ke_task_id_t const dest_id, ke_task_id_t const src_id)
{
    struct gattc_write_cfm * cfm;
    uint8_t status = GAP_ERR_NO_ERROR;
    //Send AT command
    if(uart_tp_mode_flag == false)
    {
      UART_SEND_DATA(AT_CMD_IO_SET, param->value[0]);
    }
  
    cfm = KE_MSG_ALLOC(GATTC_WRITE_CFM, src_id, dest_id, gattc_write_cfm);
    cfm->handle = param->handle;
    cfm->status = status;
    ke_msg_send(cfm);
  
    return (KE_MSG_CONSUMED);
}

那个AT_CMD_IO_SET的定义是:

#define AT_CMD_IO_SET "AT+IOSET%1u\r\n"

那么这个%1U是啥子意思?

 

坛子里的大老及大侠有知道的么????

附BLE例程说明:

AN0077_AT32_BLE_Application_Note_ZH_V2.0.4.pdf (2.03 MB)
(下载次数: 7, 2022-8-13 10:47 上传)

 

本帖最后由 ddllxxrr 于 2022-8-13 10:56 编辑
http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr

回复评论 (2)

image.png  

%u:格式字符串,%1u:要输出的数向右对齐一位

点赞  2022-8-13 17:49
引用: Jacktang 发表于 2022-8-13 17:49   %u:格式字符串,%1u:要输出的数向右对齐一位

谢谢回答

http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2022-8-14 09:22
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复