精华内容
下载资源
问答
  • 2019-03-04 16:07:35

    BES基本内容(会持续更新……)

     


    • HFP,SCO
    1. 状态标记
      #define BTIF_HF_CALL_SETUP_NONE   0  //
      #define BTIF_HF_CALL_SETUP_IN     1  //来电
      #define BTIF_HF_CALL_SETUP_OUT    2  //去电
      #define BTIF_HF_CALL_SETUP_ALERT  3  //电话铃声
      
      #define BTIF_HF_CALL_NONE         0  //非通话,HFP
      #define BTIF_HF_CALL_ACTIVE       1  //通话中,HFP
      
      /*--------------------*/
      /* start of btif_audio_state_t*/
      typedef enum {
          BTIF_HF_AUDIO_DISCON = 0,  //耳机上没有通话音频
          BTIF_HF_AUDIO_CON = 1,  //耳机上有通话音频
      } btif_audio_state_t;

       

    2. 通话SCO建立的函数  hfp_audio_connected_handler()
    3. HFP指令函数:hfp_call_ind_handler()
    更多相关内容
  • CSR蓝牙芯片开发资料

    热门讨论 2011-02-25 15:20:51
    CSR蓝牙芯片开发资料,CSR蓝牙系列芯片软件硬件开发及应用
  • BK3431S蓝牙芯片数据手册软硬件参考设计开发包资料,可做为你的学习设计参考。 BK3431S CPU Address.xlsx BK3431S Datasheet_V1.4.pdf change list.txt OTA工具及说明 uascent资料 硬件参考设计资料 软件参考设计...
  • 杰理蓝牙JL690X系列_开发安装工具,JL690X蓝牙开发的必须工具之一,资料来自官方,正确权威。
  •  摘要:本文综合运用BlueCore2-External蓝牙芯片、FB2520带通滤波器和平衡不平衡变换器、LTCC陶瓷天线等设计了一款蓝牙无线通信模块。该通信模块能够代替电缆,有效地应用于环境复杂多变的工业现场,实现现场设备、接...
  • CSR8675蓝牙芯片官方PDF参考原理图+规格书+开发底板PDF原理图 CSR8675官方参考原理图.pdf CSR8675模块应用参考原理图.pdf CSR8675模块规格书.pdf CSR867x(最小系统图).pdf CSR867x核心板原理图.pdf csr86xx...
  • 蓝牙芯片YC1051数据手册,网上根本下载不到。The YC1051 is a very low power, high performance and highly integrated Bluetooth 4.2 BLE solution, designed for operation over the 2400MHz to 2483.5Mhz ISM ...
  • CSR蓝牙芯片开发

    千次阅读 2015-02-27 10:06:28
    入手一套CSR1010开发套件,研究一下CSR的ble芯片开发,CSR101x有三个型号,1010、1011和1012,前两个都是基于4.0协议栈,只是IO数目不同,1012基于4.1协议栈,计划是先搞懂1010的开发,然后再看看4.1的协议栈是什么...

    入手一套CSR1010开发套件,研究一下CSR的ble芯片开发,CSR101x有三个型号,1010、1011和1012,前两个都是基于4.0协议栈,只是IO数目不同,1012基于4.1协议栈,计划是先搞懂1010的开发,然后再看看4.1的协议栈是什么样子。

    感觉CSR应用最多的还是基于2.1+EDR和3.0+HS的音频传输,对于BLE ,芯片种类很少,而且资料也没有那么详尽。以下针对1010的开发:

    笔者之前开发过TI的芯片和Nordic的芯片,CSR与两者不同的是CSR添加了ROM,把协议栈封装在ROM中,开发者通过调用底层API接口的方式完成上层应用的开发。ROM、RAM和外接的FLASH构成了CSR蓝牙芯片的存储系统。使用CSR开发蓝牙应用的过程和在android端开发应用的过程很类似,ROM中的固件API接口为应用提供了一个沙箱环境,保证了应用运行的安全稳定。

    1010上电首先回调AppPowerOnReset(),可在此API中定义reset执行事件。之后调用AppInit(sleep_state last_sleep_state),可在此函数中添加初始化代码。这里需要提到两个很重要的消息处理函数,AppProcessSystemEvent(sys_event_id id, void *data)和AppProcessLmEvent(lm_event_code event_code, LM_EVENT_T *p_event_data),AppProcessSystemEvent处理系统事件,比如IO口中断或者电池欠电;AppProcessLmEvent处理连接管理相关的事件,如GAP和GATT层的消息,SM层的消息等。除此之外系统还维护着一个计时器,计时精度为1ms。

    经AppInit初始化完成后即可触发GATT_ADD_DB_CFM事件,回调AppProcessLmEvent函数处理GATT_ADD_DB_CFM事件,即可进行广播参数设置并开启广播。当有外部设备请求连接时,固件完成L2CAP连接,并回调AppProcessLmEvent函数产生LM_EV_CONNECTION_COMPLETE事件提示L2CAP层的连接已经完成,应用可在此事件中,提取连接的参数;固件完成GATT层连接后,回调AppProcessLmEvent函数产生GATT_CONNECT_CFM事件,自此GATT连接建立完成。(未完待续)

    展开全文
  • 低功耗蓝牙芯片CH579系列开发记录

    千次阅读 2022-03-07 16:55:30
    CH579低功耗蓝牙芯片开发体验

    低功耗蓝牙芯片CH579系列开发记录



    前言

    本系列文章主要关于CH579系列芯片开发记录,CH579是基于ARM架构Cortex-M0内核的32位低功耗蓝牙MCU ,由南京沁恒微电子股份有限公司开发。其片上集成低功耗蓝牙BLE通讯模块、以太网控制器及收发器、全速USB主机和设备控制器及收发器、段式LCD驱动模块、ADC、触摸按键检测模块、RTC等丰富的外设资源。

    在这里插入图片描述


    一、CH579系列芯片

    1.1 引脚排列

    CH579系列有两款芯片,分别是CH579M和CH579F,引脚分布如下。
    CH579M和CH579F

    1.2 引脚描述

    CH579M资源会多一些,比CH579F多了几路AD通道,串口以及PWM驱动引脚。
    详细引脚定义如下:
    QFN48为CH579M,QFN28为CH579F。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    1.3 系统结构

    CH579芯片结构框图
    CH579芯片系统结构图

    1.4 最小系统

    CH579M
    在这里插入图片描述
    CH579F
    在这里插入图片描述


    二、资料下载

    2.1 关键资料

    官方网站有提供详细的资料下载,包括原理图、例程、下载器驱动等资料,链接如下。
    CH579系列官方资料

    2.2 视频资料

    官方视频资料没有CH579的,但是有其他CH系列的,官方例程都有良好封装,直接调用封装库就可以,小伙伴们可以类比着看。
    官方CH系列开发B站视频

    三、评估开发板

    3.1 开发板概览

    CH579系列有一款评估开发板,可以方便调试,入门十分推荐,还有就是买的时候不要忘记同时买配套专用的WCH烧写器,与板子配合十分方便,尤其在打印输出和调试方面。
    CH579M开发板

    3.2 开发板购买

    开发板购买

    官方WCH烧写器


    四、开发初体验

    4.1 环境搭建

    1. 开发环境选择keil5,没装的伙伴下面连接传送。
      keil5官方下载

    2. 下载安装好keil后需要安装CH系列芯片包才能编译CH579系列例程,下载连接如下。
      开发工具包
      下载好后解压,打开文件夹选择CH579EVT/PUB目录下的.pack文件双击安装。请添加图片描述

    3. 安装连接开发板的驱动
      CH340驱动下载

    4. 安装烧录程序的软件
      WCH烧写软件
      安装之后打开,如果是英文界面可以通过view/UI language/simplified Chinese。

    4.2 跑通例程

    我们先拿简单的串口例程体验。
    首先在keil中打开例程文件,目录为CH579EVT\EVT\EXAM\UART1\CH57x.uvprojx。
    请添加图片描述
    在keil打开后看到例程目录如下,打开user文件夹下main.c
    请添加图片描述

    关键代码如下

    #include "CH57x_common.h"
    
    
    UINT8 TxBuff[]="This is a tx exam\r\n";
    UINT8 RxBuff[100];
    UINT8 trigB;
    
    
    int main()
    {
        
    /* 配置串口1:先配置IO口模式,再配置串口 */   
        GPIOA_SetBits(GPIO_Pin_9);
        GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeIN_PU);                        // RXD-配置上拉输入
        GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA);                // TXD-配置推挽输出,注意先让IO口输出高电平
        UART1_DefInit();
        
    #if 1       // 测试串口发送字符串
        while(1){
                            UART1_SendString( TxBuff, sizeof(TxBuff) );
                            mDelaymS( 1000 );
                    }
    #endif 
    
    #if 0       // 查询方式:接收数据后发送出去
                    UINT8 len;
        while(1)
        {
            len = UART1_RecvString(RxBuff);
            if( len )
            {
                UART1_SendString( RxBuff, len );
            }
        }
    
    #endif    
    
    #if 0      // 中断方式:接收数据后发送出去
        UART1_ByteTrigCfg( UART_7BYTE_TRIG );
        trigB = 7;
        UART1_INTCfg( ENABLE, RB_IER_RECV_RDY|RB_IER_LINE_STAT );
        NVIC_EnableIRQ( UART1_IRQn );
    #endif    
    
    }
    
    
    void UART1_IRQHandler(void)
    {
        UINT8 i;
        
        switch( UART1_GetITFlag() )
        {
            case UART_II_LINE_STAT:        // 线路状态错误
                UART1_GetLinSTA();
                break;
            
            case UART_II_RECV_RDY:          // 数据达到设置触发点
                for(i=0; i!=trigB; i++)
                {
                    RxBuff[i] = UART1_RecvByte();
                    UART1_SendByte(RxBuff[i]);
                }
                break;
            
            case UART_II_RECV_TOUT:         // 接收超时,暂时一帧数据接收完成
                i = UART1_RecvString(RxBuff);
                UART1_SendString( RxBuff, i ); 
                break;
            
            case UART_II_THR_EMPTY:         // 发送缓存区空,可继续发送
                break;
            
            case UART_II_MODEM_CHG:         // 只支持串口0
                break;
            
            default:
                break;
        }
    }
    

    点击左侧双箭头编译,注意设置警示模式为C99。
    请添加图片描述

    4.3 下载编译后的HEX文件

    编译并连接好开发板后打开WCH下载软件,注意芯片要选择CH57x系列,启用串口免下载和下载校验,下载方式选择串口,选择好用户程序文件的路径,hex在obj文件夹下。
    然后点击下载,等待2-5秒出现串口串口下载完成就成功了,同时板子会自动开始跑程序。
    在这里插入图片描述
    打开串口助手可以看到打印结果如下:在这里插入图片描述

    小结

    到这里CH579开发初步的环境搭建和例程调试就跑通了,接下来逐步调试其他例程,并尝试组合。

    展开全文
  • 超小型蓝牙芯片.pdf

    2021-07-26 23:03:41
    超小型蓝牙芯片.pdf
  • 杰理蓝牙芯片JL690X系列_开发安装工具jl_toolchain_pi32_lto_1.5.3,资料来自官方,正确,权威。
  • 这几颗产品都是蓝牙低功耗芯片。DA1458X使用OTP硬件架构,功耗低,成本也低,但软件开发难度是个门槛,大团队才能做到量产,当然掌握了也是竞争力。如果对三种架构都很熟悉,然后从开发的角度做个比较,相信对nrf...
  • apollo2资料供相关技术开发资源共享,
  • 资料介绍了nRF52833芯片的典型电路与nRF52833芯片开发库,并且附带了程序例程,已经调试通过,程序功能实现了蓝牙的连接配对与NFC设备的读写功能,非常适合开发做产品的参考实例。
  • 本文综合运用BlueCore2-External蓝牙芯片、FB2520带通滤波器和平衡不平衡变换器、LTCC陶瓷天线等设计了一款蓝牙无线通信模块。该通信模块能够代替电缆,有效地应用于环境复杂多变的工业现场,实现现场设备、接入点、手...
  • 蓝牙芯片今年出货量将达28亿块.pdf
  • 该文档的目的是为了给出TI simpleLink 低功耗蓝牙cc2640无线MCU软件开发工具的概述,从而开始创建一个智能蓝牙的定制应用。该文档也提供了低功耗蓝牙的特性的介绍,在本文档中,低功耗蓝牙特指BLE。然而,这些不能...
  • 总结篇:蓝牙开发

    2020-09-14 16:02:21
    先以原生的芯片为例,直接通过BluetoothAdapterenable()打开蓝牙 → startDiscovery()开始搜索→ 通过广播接收(action:BluetoothDevice.ACTION_FOUND)找到设备 →getName()获取本地蓝牙名称→getAddress()获取...

    开发维护蓝牙项目已经18个月了,在此做一下总结

    蓝牙的开发流程

    先以原生的芯片为例,直接通过BluetoothAdapter enable()打开蓝牙 startDiscovery()开始搜索 通过广播接收(action:BluetoothDevice.ACTION_FOUND)找到设备getName()获取本地蓝牙名称getAddress()获取本地蓝牙地址开始createBond配对→ 成功之后连接蓝牙 之后就可以正常使用蓝牙功能(蓝牙电话,蓝牙音乐)

    一般大公司开发都会有提供蓝牙芯片供应商,来维护SDK,为了盈利都会受限额度,以唯一ID标识控制数量,超过这个数量未激活的设备就会变成测试版本,或者不能正常使用,除非花钱购买。

    对应其他芯片厂商是如何开发的呢?

    开发的功能蓝牙设置,蓝牙电话,蓝牙音乐。那怎么样获取到蓝牙的数据,以及实现蓝牙的功能,其实不同的芯片数据传递和接受数据是不一样。有的芯片对应开发真的是以广播来传递和实现蓝牙功能的(虽然不可取,但之前也这么干了,频繁的广播操作其实对性能上肯定有很大的影响)。但是有的供应商蓝牙开发是通过AIDL实现跨进程通信,这种方式就比较轻松了。正常都会有自己的开发文档,各种定义参数来实现蓝牙的功能。以AIDL打开蓝牙开关为例:

    例如:

    一,蓝牙设置功能开发

    1蓝牙开关

    第一步:启动服务,绑定芯片SDK。

    第二步绑定成功后,执行开启开关操作(获取开关状态,关闭状态下再打开开关)。

    第三步,获取到芯片传回来的回调onAdapterStateChanged(int newState,int oldState,String  address)类似这种,返回状态来判断是否打开蓝牙

    第四步根据回调对应显示开关状态。

    第五步,需要反馈已配对的设备信息,比如retPaireDevies(int size,String[] address,String[] name);告诉你我之前已经配对过多少个设备,显示到页面上。

    第六步,大部分都想要自动连接这种功能,开关一打开,就连接第一个设备,可以由app端来做,或者芯片端来做这个功能,逻辑上需要注意连接的设备顺序。

    2,搜索蓝牙设备

    第一步,通过AIDL请求搜索设备

    第二步,通过回调获取设备信息,一般都是onDeviceFound(String address,String name)反馈回调获取设备信息

    第三步,如果没有反馈设备需要根据需求一定时间段内取消搜索

    3,蓝牙配对

    第一步,通过AIDL请求绑定配对

    第二步,手机端同意配对反馈回调,比如onDeviceBondStateChange(String address ,String name ,int oldState,int newState)

    第三步,通过获取的状态判断是否绑定成功,如果绑定成功提示成功,如果失败提示失败

    4.蓝牙HFP协议连接(正在蓝牙通话协议 handsFree Profile)

    第一步,通过AIDL请求HFP连接

    第二步,通过HFP回调比如onHFPStateChange(String address ,int oldState,int new State)

    第三步,通过判断state是已连接状态,显示蓝牙设备已连接,如果A2dp|Avrcp协议没有连接提示已连接无媒体的item显示

    5.蓝牙A2dp协议(高级音频分布配置文件  Advanced Audio Distribution Profile)

    第一步,通过AIDL请求A2dp连接

    第二步,通过A2dp回调比如onA2dpStateChange(String address ,int oldState,int new State)

    第三步,通过判断state是已连接状态,如果Avrcp协议已连接显示蓝牙设备已连接,如果HFP协议没有连接显示已连接无手机的item显示

    6.蓝牙Avrcp协议(音视频远程控制协议  The Audio/Video Remote Control Profile)

    第一步,通过AIDL请求Avrcp连接

    第二步,通过Avrcp回调比如onAvrcpStateChange(String address ,int oldState,int new State)

    第三步,通过判断state是已连接状态,如果A2dp协议已连接显示蓝牙设备已连接,如果HFP协议没有连接显示已连接无手机的item显示

    7,取消连接

    直接通过AIDL执行取消的操作(HFP A2DP AVRCP )

    8,忽略配对

    直接通过AIDL执行忽略的操作unPair

    二,蓝牙电话开发

    1.通讯录开发(Pbap 同步联系人)

    第一步,开机启动服务,绑定HFP服务,绑定pbap服务,连接Pbap协议,

    第二步,通过连接回调,比如onPbapStateChange(String address,int oldState,int newState,int reason,int counts)通过state判断连接状态,或者通过reason来判断是否被拒绝

    第三步,Pbap已连接,那么就需要下载联系人,通过AIDL调用下载联系人方法

    第四步,通过回调,例如retPbapDownLoadedContact(PbapContact pbapContact)获取联系人信息

    第五步,下载完联系人,还需要下载通话记录,通过AIDL下载通话记录

    第六步,下载完通话记录,例如retPbapDownloadedCallLog(String address, String firstName, String middleName, String lastName, String number, int type, String timestamp)获取通话记录信息   type电话类型   timestamp时间戳 

    第七步,显示列表

    2.蓝牙电话流程

    第一步,拨打电话,通过AIDL执行hfp协议的拨打电话操作

    第二步,通过回调,比如onHfpCallChanged(HfpClientCall hfpClientCall)   hfpClientCall电话实体类信息

    第三步,通过电话类信息获取电话状态 

    比如:

     CALL_STATE_ACTIVE = 0;   通话中
     CALL_STATE_HELD = 1;  等待中
     CALL_STATE_DIALING = 2; 正在拨打
     CALL_STATE_INCOMING = 3;来电
     CALL_STATE_HELD_BY_RESPONSE_AND_HOLD = 4;三方通话接听并等待
     CALL_STATE_TERMINATED = 5挂断;

    第四步,通过回调信息,显示状态,并执行一些电话功能,都会通过这个回调来控制页面显示

    第五步,通过回调,比如 onHfpAudioStateChanged(String address,int prevState,int newState)来获取声音通道是在哪

    比如如果当前为车载开发,声音通过newState来判断是在车机端还是在手机端出声。也可以通过AIDL调用方法转移到手机端或者车机端

    3键盘拨号:

    第一步,通过AIDL,执行数字按键功能,比如拨打10086通话中,输入键盘响应

    三,蓝牙音乐开发

    第一步,连接A2dp,Avrcp协议

    第二步,通过A2dp协议获取到蓝牙音频

    第三步,通过Avrcp协议获取到蓝牙ID3信息,比如歌手,专辑名,歌曲名 比如retAvrcp13ElementAttributesPlaying( int[] ints, final String[] strings )

    第四步,通过Avrcp协议执行上下一曲,暂停播放功能操作

     

    开发蓝牙这么长时间,客户最多的抱怨问题:

    1,蓝牙连接问题    

    2,蓝牙未激活问题

    为什么蓝牙老连接不上,这是老生常谈的问题了,百分之99都会以手机问题不了了之,确实是手机问题,手机端主动拒绝连接,这也是没办法的事,手机咋们也没有办法去控制,但是我觉的,虽然手机端异常,但可以做一个友好提示,重新开启手机端蓝牙开关,这样对于客户来说比较可接受。

    蓝牙未激活问题:使用第三方芯片肯定需要激活,要不然只能使用测试版本,为了记录到底使用了多少台机器,芯片方肯定会有服务器去记录,所以激活蓝牙肯定需要联网。连接网络之后还需要根据唯一表示来记录这个机器。看起来很完美,其实往往问题就是出现在这两点,第一点网络,偶发就是连不上网。第二点,唯一标识偶发获取不到,或者获取到的有差异。所以增加了电检业务,检测是否激活成功。虽然这样暂时性解决蓝牙未激活问题,但是也增加了工作量。

     

     

     

     

     

     

     

     

     

     

    展开全文
  • BCM20730:蓝牙芯片.pdf

    2021-07-26 23:57:56
    BCM20730:蓝牙芯片.pdf
  • 蓝牙 杰理 AC692X SDK介绍 手册 有需要的可以下载查看
  • 无线技术暨蓝牙连接方案供货商CSR宣布其BlueCore5-Multimedia芯片正式开始进入量产阶段。BlueCore5-Multimedia是CSR最先进的硅晶方案,为高端立体声及单声道耳机提供最顶级的音效能力。同时,通过eXtension伙伴计划...
  • 蓝牙开发工具、代码、资料包包含有硬件开发板的手册,指令集,蓝牙与手机连接的资料以及相关视频资源的连接,希望对大家有所帮助。
  • 本系列课程将介绍如何使用 涂鸦蓝牙模组及其 SDK 进行产品开发,帮助开发者更快掌握 涂鸦蓝牙模组、涂鸦蓝牙 SDK、涂鸦 IoT 平台、涂鸦三明治开发套件、涂鸦云模组烧录授权平台 等开发工具的使用方法,以实现将产品...
  • 适合于对蓝牙芯片csr8670进行开发的工具软件,该软件在安装完成之后有很多的辅助软件比如:Blueflash
  • 中文版的cc2650蓝牙芯片软件开发指导说明文件,系统详细地让你了解该芯片和协议栈之类的知识
  • SYD8810 SYD 8811低功耗蓝牙SDK开发包,SYDTEK_Studio”是开发SYD 系列芯片十分有用的工具,用于一些蓝牙的配置,也可 以进行代码的烧录!“ SYDTEK_Studio”存放在各芯片SDK 的“tool ”目录下,双击 “SYDTEK_...
  • 炬力ATS2823/ATS2825蓝牙模块固件开发资料,包含源代码及开发教程,需要自行搭建Cygwin环境进行开发。。。。。。。。。。。。。。。
  • 蓝牙芯片技术原理详解

    千次阅读 2020-10-12 15:28:48
    蓝牙芯片技术是一种短距离无线通信技术,利用蓝牙技术能够有效地简化掌上电脑、笔记本电脑和移动电话手机等移动通信终端设备之间的通信,也能够成功地简化以上这些设备与英特网之间的通信,从而使这些现代通信设备与...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,763
精华内容 6,305
关键字:

蓝牙芯片开发

友情链接: Example for JButton.rar