mtu蓝牙_nRF52832 改变ATT_MTU提高蓝牙数据发送速率(nRF5_SDK_14.2.0)

本文介绍了如何通过修改nRF52832的ATT_MTU来提高蓝牙数据发送速率,最高可达8.2KB/s。使用nRF5_SDK_14.2.0,作者展示了从修改协议栈到增加定时器、服务结构,再到调整BLE GAP和GATT配置的过程,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

nRF52832 作为一个低功耗蓝牙芯片,其数据发送发送速率一直都偏低(高就不叫低功耗了^_^),作为初学者在网上找了很多资料,终于找到通过修改ATT_MTU来提升发送速率的方法,最快能达到8.2KB/s,现在就分享出来

首先我用的协议栈是 nRF5_SDK_14.2.0 ,将\examples\ble_peripheral中的 ble_app_template 作为模板,以此进行修改

废话不说,先上代码,首先是定义

#define TIMER_INTERVAL        APP_TIMER_TICKS(29)      //定时器时间间隔

1 BLE_NUS_DEF(m_nus); //加入串口服务结构(修改)

2 BLE_CMD_DEF(m_cmd); //加入命令服务结构

3 APP_TIMER_DEF(m_timer1); //定时器1

4

5 uint8_t hr_data[250];6 uint8_t cmd_data; //接收的命令

7 bool send_state = false; //发送状态,默认不发送

8

9 static uint16_t length = 244;

主函数基本没修改,主要初始化了一组数据用来测试发送,加入了调度器,因为使用的定时器定时进行发送,而蓝牙发送不好放在中断里进行,定时器中断就做一个接发送函数放入调度器的操作。定义了一个全局数组,用来存放发送的数据。

1 int main(void)2 {3 boolerase_bonds;4

5 //Initialize.

6 log_init();7 timers_init();8 buttons_leds_init(&erase_bonds);9 ble_stack_init();10 gap_params_init();11 gatt_init();12 advertising_init();13 services_init();14 conn_params_init();15 peer_manager_init();16

17 //Start execution.

18 NRF_LOG_INFO("Template example started.");19

20 advertising_start(erase_bonds);21

22 for(uint8_t i=0;i<250;i++) hr_data[i]=i; //初始化数据包

23 SEGGER_RTT_printf(0, "\n");//此处打印信息

24

25 APP_SCHED_INIT(20, 2); //初始化调度器26

27 //Enter main loop.

28 for(;;)29 {30 app_sched_execute(); //调度

31

32 if (NRF_LOG_PROCESS() == false)33 {34 power_manage();35 }36 }37 }

先看定时器

1 static void timers_init(void)2 {3 //Initialize timer module.

4 uint32_t err_code =app_timer_init();5 APP_ERROR_CHECK(err_code);6

7 err_code = app_timer_create(&m_timer1, APP_TIMER_MODE_REPEATED, timer_timeout_handler);8 APP_ERROR_CHECK(err_code);9 }

定时器中断服务函数

1 void timer_timeout_handler(void *p_context)2 {3 if ( send_state == true)4 {5 hr_data[0]++

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值