完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我想做一个BLE透传程序,需要使用AT指令在程序中修改,请问如何修改广播间隔、连接间隔、广播设备名等。。。。,如何在程序中动态修改??
修改完要复位才能使用不是可以直接使用??? 有没相关的例程可以参考的??? |
|
相关推荐
4 个讨论
|
|
|
1)使用AT指令来修改程序中的配置,首先你需要搞定AT的基本框架,也就是AT的解析和接收,这部分和BLE没什么关系,主要是串口编程。
2)如何动态修改,这个需要你在设计之前确定你需要动态修改的参数有哪些,然后把这些参数设置成一个自定义的属性表,修改的时候重新赋值即可。 3)一般不需要复位的,因为是变量嘛,当然重启需不需要保持之前的设置,这需要你把设置的属性保存到EEPROM或FLASH中,在启动的时候加载一下即可。 4)你需要什么样的例程呢,你需要把你的透传程序先搞定吧,然后在他的基础上面先确定需要修改的参数,其实这些都和BLE没什么太大关系的,个别参数需要注意。 5)恩看到您后面追问别人改哪里,我有点替您担心,BLE-stack需要基本了解吧,基础实验先熟悉起来在动手吧,不然很多概念不清楚,其实没什么难的,把基础例程自己跑一边,建议添加串口打印调试和ccdebug调试,调试一个通讯例程你就清楚了。 6)就是改这些值啊,我贴一部分,不一定是你需要的参数,紧紧用于示例: /* 定期执行事件的周期 */ #define SBP_PERIODIC_EVT_PERIOD 20 /* 广告间隔 (单位为 625us, 160=100ms) */ #define DEFAULT_ADVERTISING_INTERVAL 160 /* 建立连接时是否启用自动参数更新请求 */ #define DEFAULT_ENABLE_UPDATE_REQUEST TRUE /* 有限的发现广告模式30.72s 然后停止 */ /* 一般的发现广告模式 无限期 */ #if defined ( GENERAL_DISC ) #define DEFAULT_DISCOVERABLE_MODE GAP_ADTYPE_FLAGS_LIMITED #else #define DEFAULT_DISCOVERABLE_MODE GAP_ADTYPE_FLAGS_GENERAL #endif /* 最小连接时间间隔(单位为1.25ms)如果启用了自动参数更新请求 */ #define DEFAULT_DESIRED_MIN_CONN_INTERVAL 16 /* 最大连接时间间隔(单位为1.25ms)如果启用了自动参数更新请求 */ #define DEFAULT_DESIRED_MAX_CONN_INTERVAL 16 /* 从机延时值如果启用了自动参数更新请求 */ #define DEFAULT_DESIRED_SLAVE_LATENCY 0 /* 监督的超时值(单位为10ms)如果启用了自动参数更新请求 */ #define DEFAULT_DESIRED_CONN_TIMEOUT 1000 /* 公司标识符 */ #define TI_COMPANY_ID 0x000D #define INVALID_CONNHANDLE 0xFFFF /* 地址字符串的长度 */ #define B_ADDR_STR_LEN 15 |
|
|
|
|
|
|
|
|
我在程序中收到一个指令后动态修改广播周期: GAP_SetParamValue( TGAP_LIM_DISC_ADV_INT_MIN, advInt ); GAP_SetParamValue( TGAP_LIM_DISC_ADV_INT_MAX, advInt ); GAP_SetParamValue( TGAP_GEN_DISC_ADV_INT_MIN, advInt ); GAP_SetParamValue( TGAP_GEN_DISC_ADV_INT_MAX, advInt ); GAP_SetParamValue( TGAP_GEN_DISC_ADV_MIN, 0); 用sniff抓包看一直没有修改成功。 查看了之前的相关文章,我先关闭广播,然后再修改,修改完打开广播,sniff显示广播没了。 uint8 current_advertising_enable = FALSE; GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), ¤t_advertising_enable ); uint16 advInt = *rx_ptr++; advInt = advInt<<8 | (*rx_ptr++); GAP_SetParamValue( TGAP_LIM_DISC_ADV_INT_MIN, advInt ); GAP_SetParamValue( TGAP_LIM_DISC_ADV_INT_MAX, advInt ); GAP_SetParamValue( TGAP_GEN_DISC_ADV_INT_MIN, advInt ); GAP_SetParamValue( TGAP_GEN_DISC_ADV_INT_MAX, advInt ); GAP_SetParamValue( TGAP_GEN_DISC_ADV_MIN, 0); //Start Adv current_advertising_enable = TRUE; GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), ¤t_advertising_enable ); 已经无计可施了,请求帮助,谢谢! |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
549 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1513 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1337 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1756浏览 29评论
2781浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1723浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 00:42 , Processed in 0.786830 second(s), Total 68, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
937