
蓝牙
文章平均质量分 62
ydgd118
这个作者很懒,什么都没留下…
展开
-
杰理AC63蓝牙名修改
提供了基于杰理SDK修改蓝牙名字的方法,以及如何去掉(BLE)字样的办法,最后列出了一些读写VM区域的函数。原创 2024-01-11 13:15:29 · 1258 阅读 · 1 评论 -
杰理AC63串口收发实例
给出了杰理AC63系列蓝牙SOC芯片的串口收发使用实例,亲测好用。分析了串口收发流程,并提出了可以采用由系统消息调用数据包处理函数和直接在串口回调中处理数据包两种方式。串口收发使用DMA方式。原创 2024-01-11 10:10:42 · 1558 阅读 · 1 评论 -
杰理AC632N蓝牙SOC延时方式汇总
给出了杰理AC632N蓝牙SOC的多种延时方式。原创 2023-06-28 09:59:01 · 1028 阅读 · 0 评论 -
自定义杰理AC63系列BLE数据发送函数
本文详细介绍了如何自定义BLE数据发送函数:先查询当前是否建立了BLE连接,再检查发送缓存是否够用,在检查NOTIFY值是否被Client开启。最后还对ATT的handle值是否匹配进行了提醒。原创 2023-06-12 09:57:15 · 2083 阅读 · 0 评论 -
杰理AC632N实现custom hid
详细介绍了基于杰理蓝牙SOC芯片AC632N系列的SDK,实现自定义USB人体输入设备(Custom HID)的方法和步骤,并给出了实际测试结果。原创 2023-05-28 19:49:43 · 1487 阅读 · 1 评论 -
AC632N蓝牙协议栈初始化
AC632N蓝牙协议栈初始化根据用户自己预定义可以选择EDR或BLE,或者二者同时开启。原创 2023-05-27 18:34:15 · 614 阅读 · 0 评论 -
杰理AC632N上电自动关机原因
给出了杰理AC632N系列蓝牙芯片上电后自动关机的原因和解决方法原创 2023-05-07 11:32:23 · 435 阅读 · 0 评论 -
杰理AC632定时任务接口sys_timer_add和usr_timer_add区别详述
详细讲述了杰理AC632蓝牙SOC定时任务接口sys_timer_add和usr_timer_add的区别,并给出了简单测试。原创 2022-12-06 12:38:17 · 2105 阅读 · 0 评论 -
杰理AC632蓝牙芯片ADC
阐述了杰理AC632蓝牙SOC的ADC转换功能使用方法,并给出了详细代码和说明。该资料大部分来源于杰理官方,少部分为笔者根据datasheet添加。原创 2022-12-05 17:09:07 · 2031 阅读 · 0 评论 -
2款2.4G蓝牙PCB天线尺寸(来自TI)
2款2.4G蓝牙PCB天线尺寸(来自TI)原创 2022-10-31 12:00:46 · 3442 阅读 · 2 评论 -
理论估计电池寿命(来自TI蓝牙智能锁案例)
详细讲解了如何进行理论估计电池寿命,对开发者设计低功耗IOT设备来说非常值得一读。原创 2022-10-27 18:29:39 · 573 阅读 · 0 评论 -
杰理复位源分析
杰理复位源分析原创 2022-10-25 16:27:40 · 677 阅读 · 0 评论 -
杰理AC632N SPP+BLE改为单模BLE降功耗的方法
详细介绍了杰理蓝牙SOC芯片AC632N系列SPP+BLE例程改为BLE单模和进一步降低功耗的方法。原创 2022-10-25 16:18:18 · 2140 阅读 · 8 评论 -
杰理强制升级工具4.0使用和原理解析
杰理强制升级工具4.0使用和原理解析原创 2022-09-09 15:26:44 · 4170 阅读 · 2 评论 -
杰理AC632N蓝牙芯片RTC使用
用代码分析方法详细讲述了杰理AC632N蓝牙芯片的RTC使用方法,并给出了串口调试打印结果。原创 2022-08-26 11:54:09 · 1710 阅读 · 0 评论 -
杰理SDK使用CODEBLOCKS编译出错“不是内部或外部命令,也不是可运行的程序“解决方法
给出了杰理SDK编译出错“不是内部或外部命令,也不是可运行的程序”问题的解决方法。原创 2022-08-08 15:51:44 · 3030 阅读 · 0 评论 -
杰理AC632N蓝牙芯片iokey使用解析(通用MCU版)
分析了官方SDK源码(fw-AC63_GP_MCU-AC63_GP_MCU_v1.4.0),对其进行了分类梳理,并总结了消息池的机制原理。原创 2022-08-08 09:35:21 · 7459 阅读 · 7 评论 -
DA14580 主机从扫描到建立连接全过程分析(含代码)
分析了主机从扫描到广播者发出的广播数据开始到建立连接的全过程:扫描到广播数据---->通过匹配服务的UUID找到连接对象---->发出建立连接请求(向从机发出)---->收到连接请求消息指示(从机同意了)---->把状态从可连接切换为已连接,启用配置文件和服务并初始化、交换MTU,---->连接建立成功。原创 2022-04-30 12:10:30 · 1074 阅读 · 7 评论 -
DA14580 BLE 主机(client)和从机(server)状态机
DA14580 BLE 主机(server)和从机(client)状态机原创 2022-04-28 13:47:05 · 738 阅读 · 0 评论 -
DA14580主机扫描
介绍了DA14580作为主机发起扫描和发现广播者的流程,并对具体函数进行了分析。原创 2022-04-27 07:01:53 · 536 阅读 · 0 评论 -
DA14580作为server发送数据
本文介绍了蓝牙BLE芯片DA14580作为从机和server,向手机APP或者其他配对设备发送数据的一个流程。原创 2022-04-22 14:37:54 · 359 阅读 · 0 评论 -
DA14580BLE点亮LED
具体讲述了DA14580BLE协议栈下,用手机APP发送指令控制LED亮灭状态的代码编写和配置流程。原创 2022-04-21 21:12:05 · 497 阅读 · 0 评论 -
DA14580BLE接收流程分析
DA14580接收数据流程分析,主要是收到配对设备更新特征值请求后的处理流程。依据官方例程,详细分析介绍了从GAP层到用户APP应用层的消息传递路径。清楚该路经,有助于开发者深入理解数据在BLE协议栈里的流向。原创 2022-04-20 23:31:37 · 979 阅读 · 0 评论 -
DA14580BLE协议栈启动分析(含代码)
启动过程完成后立即进入main_func函数。该函数在进入主循环while(1)之前,只调用了system_init()函数。system_init()函数里面包含了对看门狗、时钟、外设、检查和读取蓝牙物理地址、BLE的初始化等等。BLE初始化部分具体包含init_pwr_and_clk_ble()、rwip_clear_interrupts ()、rwip_init()等。这些函数是固化代码,不对开发者开放。从官方SDK看,尽管BLE协议栈非常庞大,但是BLE的main函数却是非常简单的,不算注释,代码总原创 2022-04-19 18:22:35 · 1010 阅读 · 1 评论 -
DA14580BLE协议栈下GPIO中断
在DA14580官方SDK提供的例程里,有一个带BLE协议栈的例子,就是ble_app_barebone,这个是BLE蓝牙的空系统,带广播和连接功能。开发者可以在其基础上添加代码实现GPIO中断功能。先简单说一下BLE协议栈需要添加代码的地方。下图看BLE协议栈的树状图,绿色框是通用的驱动文件,官方以及提供了几乎全部外设的驱动文件,开发者也可以自己编写实现特殊功能的驱动文件。蓝色框是user_platform,这里开发者添加外设的配置代码。红色框是用户应用文件,其中的user_barebone.c就是前原创 2022-04-17 18:36:12 · 531 阅读 · 0 评论 -
DA14580添加一个BLE定时任务
DA14580添加BLE定时任务。原创 2022-04-16 18:05:47 · 583 阅读 · 0 评论 -
DA14580的AD转换
DA14580在两处体现了ADC功能。一是电源管理方面,10bit的ADC能够测量电池电压;二是模拟接口方面,有4通道的10bit AD转换。10bit ADC可单端可差分,一次转换耗时65ns,最大转换率3.3M/s,100K转换率时功耗才5uA。并且有1.2V和3.6V两种满量程配置。ADC固定使用P0-0至P0-3四个引脚。下面看ADC的寄存器。ADC控制寄存器1寄存器bit12 GP_ADC_MUTE设置为1的时候,用于进行ADC的校准。分别将bit10 GP_ADC_SIGN置1原创 2022-04-15 18:17:04 · 858 阅读 · 2 评论 -
DA14580外部中断
DA14580外部中断原创 2022-04-15 12:14:28 · 408 阅读 · 0 评论 -
DA14580软件定时器0(TIMER0)和PWM0、PWM1的理解
一. 软件定时器0功能概述1. 16位的通用计时器2. 能够产生2个脉宽调制信号(即PWM0和PWM1),但共用编程(频率和占空比)。公式里“N”和“M”的含义看下面寄存器。3. 可编程的PWM信号占空比。公式里“N”和“M”的含义看下面寄存器。4.独立的可编程中断定时器。公式里的“ON”请看下面寄存器二. 软件定时器0寄存器控制寄存器比较简单,此处忽略。主要看另外三个计数重载寄存器,它们决定定时器0的频率、PWM信号的频率和占空比。表里蓝色和红色框出的“ON”、“N”和“M”和上面提到的公式原创 2021-04-23 17:34:34 · 2302 阅读 · 1 评论 -
Peripheral Drivers of DA1458x Software Platform----GPIO
该驱动程序的源代码位于:sdk \ platform \ driver \ gpio。一、 How to Use this Driver1. 典型用法●在periph_setup.h中填充函数GPIO_reservations():为要使用的每个GPIO引脚添加带有适当参数的RESERVE_GPIO()宏指令。●在periph_setup.h中填充函数set_pad_functions()...原创 2020-02-24 00:11:01 · 302 阅读 · 0 评论 -
Peripheral Drivers of DA1458x Software Platform----UART
DA1458x SDK为每个接口(GPIO,SPI,UART,ADC,正交和定时器)提供了一个核心驱动器,以及多个采样驱动器(加速度计,SPI闪存,EEPROM I2C,电池电量)。 请注意,即使SDK中提供了所有驱动程序的源代码来帮助调试,也不建议修改核心驱动程序。注:在系统从扩展睡眠或深度睡眠模式唤醒后,必须再次调用设备初始化和配置功能。 实现这些调用的专用位置是periph_setup.c...原创 2020-02-23 23:02:39 · 251 阅读 · 0 评论 -
Memory Organization of DA1458x Software Platform
1.OverviewDA1458x包含一个嵌入式的一次性可编程(OTP)存储器,用于存储蓝牙配置文件和自定义应用程序代码。Bluetooth®低能耗协议栈存储在专用ROM中。低泄漏保留RAM用于在深度睡眠模式下存储敏感数据和连接信息。内存块大小如下:●84 kB ROM。包含Boot ROM代码和Bluetooth Low Energy协议相关的代码。●32 kB一次性可编程(OTP)。在D...原创 2020-02-23 21:59:35 · 646 阅读 · 0 评论 -
Application Software Of DA1458x Software Platform
Application Software从BLE堆栈的不同层和配置文件代码生成消息,以向应用程序任务发送事件信号。另一方面,应用程序会生成消息并将其发送到堆栈以开始大量操作。消息有两个不同的方向。●从堆栈和配置文件到应用程序任务的消息。●从应用程序任务到堆栈和配置文件的消息。Application Software在架构上由SDK Application和User Application两...原创 2020-02-23 17:01:16 · 326 阅读 · 0 评论 -
System API of DA1458x Software Platform(三)
Serial Logging Interface API系统提供了串行记录接口API。 可以将此接口用于记录目的,或通过UART与外部系统通信。 该API在arch_console.h头文件中定义。void arch_puts(const char *s)放字符串功能。 将字符串s推送到UART队列。int arch_printf(const char *fmt, …)Printf功能。...原创 2020-02-23 15:37:18 · 374 阅读 · 0 评论 -
System API of DA1458x Software Platform(二)
系统软件为应用程序提供了睡眠API,以修改操作模式(活动,扩展睡眠,深度睡眠)。 该API在arch_sleep.h头文件中定义,并提供以下功能:void arch_disable_sleep(void)禁用所有睡眠模式。 系统处于空闲或活动状态。void arch_set_extended_sleep(void)激活扩展睡眠模式。void arch_set_deep_sleep(voi...原创 2020-02-23 12:01:28 · 308 阅读 · 0 评论 -
System API of DA1458x Software Platform(一)
系统软件API导出许多在SDK项目的主函数中调用的应用程序回调函数。应用程序回调函数由user_callbacks_config.h头文件中的struct arch_main_loop_callbacks类型变量ser_app_main_loop_callbacks定义。 如果在该结构的任何回调函数中没有应用程序任务要运行,则应为该回调成员分配一个NULL函数。app_on_init()在系统...原创 2020-02-22 23:08:41 · 316 阅读 · 0 评论 -
DA14580/1458X Real Time Kernel基本理解
Real Time Kernel概述DA145x软件平台利用了由Riviera Waves许可的小型高效实时内核。 内核提供以下功能:●任务创建和状态转换。●任务之间的消息交换。●计时器管理。●动态内存分配。●BLE事件的调度和处理SchedulerReal Time Kernel的核心是在应用程序主循环中运行的调度程序Scheduler。 调度程序检查是否设置了事件,并通过调用相...原创 2020-02-21 21:56:35 · 1321 阅读 · 3 评论 -
低功耗蓝牙协议栈的基本理解
一、Device Modes(设备模式)BLE 蓝牙低功耗BR 基本速率EDR 增强数据速率同时支持BLE和BR / EDR的设备称为双模式设备。 通常,除非另有特别说明,否则在蓝牙生态系统内部,移动电话或便携式计算机被视为双模式设备。 仅支持BLE的设备称为单模设备。单模(BLE或低功耗蓝牙)设备仅实现BLE,并且能够与单模和双模设备通信,但是不能与仅支持BR / EDR的设...原创 2020-02-18 19:13:28 · 997 阅读 · 0 评论 -
DA14580 SDK5.0.4软件包主要改进之处
1.提供了解决唤醒定时器硬件反跳问题的软件解决方法。当RCX为LP时钟时,唤醒定时器的反跳时间比预期的时间长3倍左右,因为硬件反跳机制假定LP时钟频率为32KHz。添加了功能wkupct_tweak_deb_time(),以纠正系统使用RCX作为LP时钟进入睡眠状态时的唤醒计时器去抖时间。当系统即将进入睡眠状态(进行调整)和系统唤醒时(撤消调整)。2.修复了与arch_printf()处理相...原创 2020-02-17 17:51:54 · 1060 阅读 · 0 评论 -
DA14580 SDK 软件配置
**DA14580 SDK 软件配置**一、集成或外部处理器操作模式DA14580软件配置有两种模式:集成处理器(integrated processor)配置模式和外部处理器(external processor)配置模式。这两种模式分别对应于Riviera Wave文档中描述的全主机(full-hosted)配置和全嵌入式(full-embedded)配置模式。应用程序开发人员可以使...原创 2020-02-17 12:06:38 · 619 阅读 · 0 评论