蓝牙
文章平均质量分 77
dear_Wally
这个作者很懒,什么都没留下…
展开
-
蓝牙常见断开错误码解释
2、在加密暂停过程中,如果从机在接收到LL_PAUSE_ENC_REQ PDU后,或主机在接收到LL_PAUSE_ENC_RSP PDU后,主机或从机的链路层接收到来自对等链路层的意外数据物理通道PDU,它应立即退出连接状态,并切换至待机状态。1、在加密启动过程中,如果从机在接收到LL_ENC_REQ PDU后,或主机在接收到LL_ENC_RSP PDU后,主机或从机的链路层接收到来自对等链路层的意外数据物理通道PDU,则它应立即退出连接状态,并切换到待机状态。对方收到之后就会立即断开连接,己方也会断开。原创 2023-12-31 15:00:26 · 2186 阅读 · 0 评论 -
2.4G芯片做蓝牙广播发送数据(伪蓝牙)
伪蓝牙LE(Faking Bluetooth LE)Bluetooth LE是蓝牙4.0规范中引入的一项新技术。 除了名称外,它与蓝牙完全无关。它是为低功耗而设计的,设计表明了这一点。它不像真正的蓝牙那样,会按照精确的时间表进行跳频,而不管任何事情,LE都会在发送一定数量的数据包后进行跳频,因此无需唤醒即可保持运行时钟来知道下一跳的位置。实际上,LE允许设备在保持连接的同时,长时间完全关闭其无线电。这对于键盘和鼠标以及所有其他类似的东西来说非常棒。LE的另一个很酷的特性是,设备可以主动发送小块数据的广播原创 2020-06-17 10:32:38 · 6115 阅读 · 4 评论 -
DA14580_启动文件讲解
1 、启动文件简介DA14580的启动文件为boot_vectors.s,启动文件由汇编编写,是系统上电复位后第一个执行的程序。主要做了以下工作:1.1、初始化堆栈指针 SP =__initial_sp1.2、初始化PC指针 =Reset_Handler1.3、初始化中断向量表1.4、配置系统时钟1.5、调用C库函数_main初始化用户堆栈,从而最终调用main函数去到C的世界...原创 2018-05-15 10:17:24 · 1486 阅读 · 0 评论 -
DA14580管脚唤醒配置
1、DA14580的所有GPIO管脚都可以配置睡眠唤醒。2、寄存器WKUP_CTRL_REG 位 符号 描述 15:14 Reserved 7 WKUP_ENABLE_IRQ 使能唤醒中断(1:使能 0:禁止) 如果事件计数器的值与WKUP_COMPARE_REG的值相等,则触发中断(WKUP_QUADEC_IR...原创 2020-05-01 14:19:11 · 451 阅读 · 0 评论 -
DA14580外设篇之GPIO
1、封装管脚根据DA14580的datasheet可以知,DA14580有三种封装WLCSP34、QFN40、QFN48 WLCSP34:一共34个管脚,14个IO管脚(P0_0~P0_7,P1_0~P1_5)QFN40 :一共40个管脚,24个IO管脚(P0_0~P0_7,P1_0~P1_5,P2_0~P2_9)QFN48 :一共48个管脚,32个IO管脚(P0_0~P0_7,P...原创 2020-05-01 14:21:45 · 584 阅读 · 0 评论 -
DA14580配对
使用官方的ble_app_profile工程来配置安全配对。1、在文件da1458x_config_basic.h, 定义CFG_APP_SECURITY #define CFG_APP_SECURITY2、在文件user_config.h,把 static const struct security_configuration user_security_conf注释掉。//stati...原创 2020-05-01 14:22:01 · 700 阅读 · 0 评论 -
DA14580睡眠配置
我们使用官方的ble_app_profile工程配置睡眠模式,睡眠模式使用扩展睡眠。项目功能:上电广播10s,然后进入睡眠。按下按键唤醒,广播10s,然后进入睡眠,以此循环。1、打开文件user_config.h,将app_default_sleep_mode 赋值为 ARCH_EXT_SLEEP_ONconst static sleep_state_t app_default_slee...原创 2020-05-01 14:20:00 · 814 阅读 · 1 评论 -
DA14580 空中升级(SUOTA)
一、需要用到的资料和软件Python 3.5 、SmartSnippets_Studio 、DA1458x_SDK_5.x.x.zip 、DA1458x_SUOTA_Multipart_Binary_Generator.zip 、SUOTA.apk 。1、Python 3.5 可以到www.python.org.官网下载,点download中的windows选择原创 2020-05-01 14:23:13 · 830 阅读 · 0 评论 -
DA14580做主机
一、主机通讯过程包括:扫描、发出连接请求、建立连接、发现服务、交换数据。1、扫描过程:应用层将GAPM_START_SCAN_CMD消息发送到堆栈,设备将开始扫描过程,并报告当前正在进行广播的所有可用设备。广播事件将被报告给.app_on_adv_report_ind指针指向的函数,即user_on_adv_report_ind( )函数。在user_on_adv_report原创 2018-02-03 17:21:16 · 1767 阅读 · 4 评论 -
DA14580发现服务
1、发现服务是在与从机建立连接成功后进行的,DA14580建立成功后会调用user_on_connection( )函数。里面有个使能配置文件函数app_prf_enable( ),这个函数最终会调用user_sps_enable()。void user_sps_enable(uint16_t conhdl){ struct sps_client_enable_req * req原创 2020-05-01 14:22:45 · 347 阅读 · 0 评论 -
DA14580睡眠唤醒时不调用app_wakeup_cb
1、按键唤醒后可以执行app_button_press_cb函数,并且调用app_easy_wakeup();以及最后能执行ke_msg_send_basic(wakeup_id, TASK_APP, 0);但是却没有回调app_easy_wakeup函数。解决:在user_modules_config.h文件中,将EXCLUDE_DLG_MSG定义并设置为0, ...原创 2018-03-14 09:05:05 · 1055 阅读 · 0 评论 -
为什么580在升压模式下不能与RCX一起运行,必须使用XTAL32?
DA14580的电源有两种接法,一种是升压型(0.9~2.0V输入),另一种是降压型(2.35~3.3V输入)。降压型:升压型:当处于升压模式时,DA14580不能在没有外部XTAL 32KHz的情况下工作,原因是当在升压模式下工作并进入睡眠状态时,dcdc转换器关闭,这意味着RCX将在不同的电源下工作(工作时为dcdc,睡眠时为电池供电),这将导致RCX振荡器漂移。官方解释:DA14580需要1...原创 2018-03-14 11:48:50 · 397 阅读 · 0 评论 -
DA14580睡眠
睡眠流程 1、主函数在schedule_while_ble_on中处理所有的内核挂起事件。do { schedule_while_ble_on();}while (app_asynch_proc() != GOTO_SLEEP); 2、所有的内核挂起事件都处理完成后,调用rwip_power_down获取它的睡眠模式,判断它进入哪种睡眠模式,或者不睡眠。sleep_mod...原创 2020-05-01 14:22:17 · 308 阅读 · 0 评论 -
DA14580外设篇之GPIO中断
1、GPIO中断描述DA14580的GPIO中断有6个,1个键盘接口中断(KBRD)、5个独立中断线(IRQ0~IRQ4)。1.1、IRQ0~IRQ4中断线 一共有5组独立的中断线,每组中断线支持所有的IO管脚配置为中断输入源,一个中断线只能配置1个IO管脚,一个IO管脚可以配置多个中断线。因此最大只能配置5个管脚的独立中断。(每个中断线的消抖时间是共用的)1.2、KBRD键盘接口...原创 2020-05-01 14:21:25 · 765 阅读 · 0 评论 -
DA14580外设篇之定时器和PWM
1、定时器描述DA14580有软件定时器和内核定时器,软件定时器属于DA14580的外设,一共有2个Timer0、Timer2。内核定时器属于BLE的,这里只介绍软件定时器Timer0和Timer2。1.1、Timer0Timer0是一款具有PWM输出功能的16位通用定时器。 Timer0可以编程为产生周期性中断(SWTIM)。Timer0可以输出2组PWM(PWM0、PW...原创 2020-05-01 14:21:04 · 786 阅读 · 0 评论