自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 将充电灯改为呼吸灯,并在充满后长亮一段时间,再呼吸灭

实现:充电的时候,灯控为呼吸灯,在充满电之后,维持长亮一段时间,维持时间结束,耳机再呼吸灭。还不清楚的小伙伴可以添加我的个人微信 lqy—1997 (中间是三个英文的杠)进行交流。bsp_charge.c下bsp_charge_box_process_do()中。func_bt.c下。func_bt.h下。

2023-03-16 17:18:02 537 2

原创 修改自动关机时间

这个是实现:在连接上手机的时候,闲置20分钟,自动关机;还不清楚的小伙伴可以添加我的个人微信 lqy—1997 (中间是三个英文的杠)进行交流。

2023-03-16 16:56:42 336

原创 蓝讯5616B 修改开关机的灯为呼吸灯

最近有一款耳机,客户要求为:在开机的时候,呼吸亮,呼吸亮到最大之后,进入蓝牙搜索的灯;关机的时候,长亮3S左右,然后再呼吸灭。以上就是全部的实现过程,还不清楚的小伙伴可以添加我的个人微信 lqy—1997 (中间是三个英文的杠)进行交流。到这里就能够时间开机的时候呼吸亮, 到最高亮度的时候恢复系统的灯控。

2023-03-16 16:26:46 533

原创 添加按键按下的提示音-蓝讯芯片

在msg_bt.c下 sfunc_bt_call_message()下switch循环中:(这里添加的是通话中)在msg_bt.c下 sfunc_bt_ring_message()下switch循环中:(这里添加的是来电)在msg_bt.c下 func_bt_message()下switch循环中:(这里添加的是正常使用)还不清楚的小伙伴可以添加我的个人微信 lqy—1997 (中间是三个英文的杠)进行交流。这样添加之后就会在每次按下的时候,播报按下的提示音。在底层找到这个音频文件:res.h。

2023-03-16 14:53:03 646 1

原创 增加第一次上电开机的功能

还不清楚的小伙伴可以添加我的个人微信 lqy—1997 (中间是三个英文的杠)进行交流。在setup.c下找到setup_arch()然后再到判断开机的地方进行执行。

2023-03-15 11:45:28 252

原创 关于杰理6983D4修改时钟模式之后的死机问题

最近有一个案子,硬件工程将电感过于靠近磁铁,磁铁对电感的干扰,导致手机搜不到蓝牙配对名,拆壳之后正常,软件解决的方法有两个:改LDO模式、改时钟模式。改LDO模式:修改之后,电感就没有作用了,可以直接不贴,自然无视干扰,但是功耗会高很多。还不清楚的小伙伴可以添加我的个人微信 lqy—1997 (中间是三个英文的杠)进行交流。

2023-03-15 11:22:26 426

原创 通过按键进入CBT(DUT)模式

按键进入CBT(DUT)模式

2022-08-12 17:32:03 837

原创 从充电仓拿出播报开机提示音

充电仓拿出播报开机提示音

2022-08-12 16:52:08 48

原创 充满电之后的灯光转变

充满电转灯

2022-08-12 16:46:04 349

原创 修改TWS连接之后的耳机灯光

TWS连接之后,修改耳机灯光

2022-08-12 16:42:34 79

原创 通过按键消息实时修改高音及低音并显示当前值

这个是接着上一篇点亮数码屏来写的,数码显示模块就不再重复,直接修改需要的函数,具体实现如下:首先创建两个变量,分别控制低音及高音的值:(bsp_sys.c下)//系统里面高音和低音是从u8 set_bass_num; //用于控制低音加减u8 set_treble_num; //用于控制高音加减bsp_sys.h 下:extern u8 set_bass_num; //用于控制低音加减extern u8 set_treble_num; //用于控制高音加减接下来就是按键消息的

2022-02-18 15:48:33 594 2

原创 点亮数码管

这段时间也是有点太忙了,没有更新,最近有些小伙伴问数码管应该如何点亮,这里详细说说。首先呢,宏定义得打开:(config.h下)#define GUI_SELECT GUI_LEDSEG_7P7S //GUI_NO //GUI Display Select打开之后底层就打开了,之后就是修改底层的驱动了:第二步修改对应的IO口:(port_ledseg.c 下)#define LED7P7S_ANY_IO 1

2022-02-18 14:41:00 2010 3

原创 通话参数配置的经验和技巧

整体的通话信号流程如下:MIC采集信号 -> 放大器 -> ADC采集 -> 通话MIC数字增益 -> AEC算法 -> ANS降噪算法 -> 通话MIC后端数字增益 -> 通话EQ -> 蓝牙上行。配置中如图所示:MIC去直流fliter配置:MIC高通fliter,去掉直流信号。作用相当于修改串联的MIC输入电容。想低频少一些,可以选择Cutoff 240Hz。MIC省电容电阻接法时,修改此项可以等效调整电容参数;不省电容方案时,此项用默认值Cut

2021-07-10 15:49:25 2357 2

原创 蓝讯芯片软件优化RF

现在客户对距离要求越来越高,有时候硬件已经优化到最佳了,客户还想再优化一点,这个时候就可以通过软件来进行优化;或者是硬件设计不合理,信号偏弱,也可以通过软件来进行优化,具体如下:参数意义分别如下:降低未连接时TX功率:这个可以解决在搜索阶段由于信号太强而导致的杂音,注意是信号太强,如果PCB板本身存在杂音的话还是需要优化硬件;通话的MIX_GAIN0及DIG_GAIN0:通话的时候就会将参数修改为它,调整这两个值需要注意:连续说话会不会出现卡顿(这个卡顿的前提是和距离无关),通话的卡顿就优化这里;

2021-07-10 15:33:47 953

原创 几种T卡座的检测方法

最近整理了几种T卡座的资料,软件修改方法各不相同,具体如下:第一种:低电平检测,这种是最常规的一种T卡,软件里面默认的也是这种:io_def.h中定义为:#define SD_CLK_DIR_IN() {GPIOADIR |= BIT(6); GPIOAPU |= BIT(6);}#define SD_CLK_IN_DIS_PU10K() {GPIOADIR |= BIT(6); GPIOAPU &= ~BIT(6);}#define SD_CLK_DIR_OUT()

2021-05-13 17:16:36 3177 1

原创 修改系统音量相关集合

需求如下:加减音量只有6挡;打电话的时候每次默认最大音量,且通话时最小音量为1,不能无声;具体修改如下:在配置工具中将系统32级音量关掉,系统音量就变成16级,可以使得在苹果手机上面音量加减步进为一格:再就是记录系统音量的变量:sys_cb.vol:记录了系统的音量;sys_cb.hfp_vol:记录系统通话的用量;系统内部的音量+/-操作如下:func.c下func_message()中,附系统内部的具体实现://音量+:bsp_set_volume(bsp_volume_inc(sys

2021-03-10 10:40:55 1021 1

原创 添加NTC功能

系统有一个自带的NTC功能,但是只能检测温度高于某值,但是如果要添加上线和下线,就需要自己写,具体实现如下:config.h中:/***************************************************************************** * Module : NTC检测功能 *****************************************************************************/#define

2021-03-06 16:08:05 812

原创 关机之后长按10S恢复出厂设置

关机之后长按10S,恢复出厂设置,恢复之后开机不播报开机提示音,如果按住5S以上,10S以内松手,即开机(需要播报开机提示音);按住5S以内松手不动作;具体实现如下:bsp_sys.c中创建变量:u8 power_reset_flag = 0;//开机的时候长按10S复位操作标志位bsp_sys.h中声明为全局变量extern u8 power_reset_flag;//开机的时候长按10S复位操作标志位bsp_key.c下power_on_check_do()中:int ticks_num

2021-03-06 16:03:39 1828

原创 使用内置触摸实现入耳检测

这个是自己测试的一个功能,具体修改如下:首先在配置工具中开启内置入耳检测,设置正确的IO口:内置触摸SPP调试:开启SPP调试,开启之后可以在调试APP内看到实时的触摸值,实际灵敏度已调试为准,差值不一定50;内置触摸入耳检测:开启芯片内置触摸入耳检测功能;入耳CDPR参数:芯片内置触摸灵敏度调节参数;添加检测功能如下:func_bt.c下func_bt()中:u8 in_ear_flag = 0;//用于接收系统函数的返回值u8 in_ear_change = 0;//用于传递给函数的值

2021-03-06 16:00:03 748

原创 调节芯片内置触摸的灵敏度

使用芯片内部自带的触摸功能,可以节省触摸IC及调节灵敏度电容,进一步节省成本,具体调试方法如下:首先在配置工具中开启内置触摸功能:内置触摸SPP调试:开启SPP调试,开启之后可以在调试APP内看到实时的触摸值内置触摸按键功能:开启内置触摸功能内置触摸软开关机:触摸是否支持软开关机功能触摸按键CDPR参数:灵敏度调节参数调试的时候可能会过于灵敏或者灵敏度不够,可以修改软件来调整:bsp_tkey.c下bsp_tkey_init()中:if (tk_cb.ch != 0xff){ //tou

2021-03-06 15:56:10 4749 6

原创 呼吸灯的实现

最近调了一款耳机,客户要求做呼吸灯,在连接之后红蓝灯交替呼吸,具体实现如下:首先,创建变量:u16 count = 0; //控制PWM低电平值u8 tick_flag = 0; //控制灯亮的模式(变亮阶段还是变暗阶段)u8 test_flag = 0; //关断控制位,使每次只关一次u8 flip_led_timer = 0; //呼吸灯动作标志位之后需要将灯光控制的函数关掉:Bsp_sys.c下usr_tmr5ms_isr()中: i

2020-11-27 11:06:27 2374 5

原创 单击之后马上长按的特殊按键处理的实现

按键操作为:单击之后马上长按,可以实现一些特殊的功能,比如实现音量的长加、长减、按住多少秒之后复位系统等等功能;以下以‘单击长按’命名;这里以实现音量+为例,具体实现如下:首先,创建变量:bsp_bt.c下文件最上面创建:u8 bt_one_flag;//单击按下之后的消息处理u16 bt_one_num_flag;//单击按下之后的复位u8 bt_long_flag;//‘单击长按’标志位u8 flag_max_vol;//最大提示音一次按下只播报一次再将其定义为全局变量bsp_bt.h

2020-11-02 15:18:11 664

原创 六击及以上按键消息处理的实现

兰讯的芯片底层已经处理好五击及以下按键处理,要实现六击或者更多按键处理,思路都差不多,这里以六击为例,具体实现如下:首先,定义变量:bsp_sys.h下sys_cb_t结构体中:u8 bt_one_flag;//单击按下之后的消息处理u8 bt_one_flag_time;//单击按下之后的复位计时之后来到蓝牙消息处理函数中,单击按下记一下数,1S内按下六击即可:msg_bt.c下func_bt_message()中:case K_PLAY_PWR_USER_DEF://短按按下消息响应,单

2020-10-30 15:18:37 648

原创 通过同时双击左右耳恢复出厂设置

通过同时双击左右耳恢复出厂设置,单个耳机双击的时候响应按键处理,原理就是:通过按键传递消息,在多长的时间内满足条件就执行恢复出厂设置,不满足就响应按键处理。具体实现如下:首先就是创建变量:bsp_sys.h下sys_cb1_t结构体中: u8 double_mun_flag;//双击之后的清除标志 u8 fuer_doubleflag;//副耳双击的标志位 u8 zhuer_doubleflag;//主耳双击的标志位创建消息定义:bsp_key.h中:#define EVT_DOUBLE_

2020-10-30 10:50:32 905 1

原创 降低耳机灯的亮度

如果有客户反馈灯光亮度太亮,可以通过修改元器件,使用低亮的灯来实现;或者是软件使用上拉电阻的形式降低亮度,具体实现如下:首先定义函数,在bsp_sys.c文件最上面定义:static u8 blue_led_sta = 0, red_led_sta = 0;//灯光亮灭标志位void led_cfg_set_on_ex(gpio_t *g)//控制灯光亮标志位函数处理{ if(g->num == 3){ //PB3 blue_led_sta = 1; } if(

2020-10-30 10:26:59 625 5

原创 将充电红灯长亮修改为红灯闪烁

这是一个客户的要求:将耳机的充电红灯长亮修改为充电红灯闪烁,充满灭灯。具体实现如下:首先就是创建变量:bsp_sys.h中sys_cb1_t结构体下:u8 charge_rled_change;//控制充电红灯闪烁由于充电灯控是在芯片底层实现,代码中没有充电灯控处理,通过配置及修改IO口的方法是无法实现将长亮修改为闪烁,只能通过中断直接控制IO口来处理:开中断:在bsp_sys.c下bsp_sys_init()中:if(CHARGE_DC_IN())//控制充电红灯闪烁,中断要在按键处理前面

2020-10-30 10:14:40 766 1

原创 兰讯芯片修改为进入蓝牙模式未连接的时候先闪20次

这个是一个案子修改的一个小细节,描述如下:进入蓝牙模式未连接的时候先闪20次,然后再进入配置的灯光,配置为连接手机成功,所有灯光熄灭;未成功连接手机,闪烁20次之后变成红蓝交替闪烁(注意:未闪烁满20次,连接手机之后也要熄灭),具体修改如下:首先创建变量:bsp_sys.h下sys_cb1_t结构体中 u8 open_orange_falg;//控制连接过程计数 u8 orange_num_flag;//计数20次之后就到蓝牙模式下的灯光控制:func_bt.c中func_bt_status()

2020-10-30 09:55:07 351 5

原创 兰讯76A3芯片TWS配对后灭灯

最近客户要求在TWS配对之后要灭灯,但是试过很多方法都无法真正的将灯熄灭,后来解决了,修改具体如下:在func_bt.c 中 func_bt_status()下 ,while(1)循环中添加如下:if((!bt_tws_is_connected())||(bt_nor_is_connected())){ //耳机TWS没有配对或者未连接到手机,流程依旧 func_bt_disp_status();}else //当TWS连接之后关掉灯控{ //由于灯光控制是在底层的硬件中断中控制, //

2020-10-28 19:42:52 732 1

原创 4054 充电IC使用技巧---配合中科蓝讯AB5365B使用

首先呢,介绍一下TP4054这款芯片。TP4054 是一款完整的单节锂离子电池采用恒定电流/恒定电压线性充电器。其 SOT封装与较少的外部元件数目使得 TP4054 成为便携式应用的理想选择。充电电流在达到最终浮充电压之后降至设定值 1/10 时,TP4054 将自动终止充电循环。这就使得这个IC可以很好的应用到插卡的面条耳机或者音箱之中,这里详细讲解在面条耳机之中的应用(真实原因其实是由于中科蓝讯AB5365B等6系列的芯片没有内置充电模块,只能通过外围IC来实现充电,主要讲解TP4054与中科蓝讯AB5

2020-07-21 14:15:43 7637 11

原创 主机给副机传送消息

蓝牙对耳在一些配对提示音上是对耳播报,但是有些提示音仅有主耳进行播报,那么如何让仅主耳播报的提示音变成对耳同时播报呢?第一步:我们需要添加一个按键事件,这个按键事件会通过蓝牙传递给副耳,副耳会接收到这个消息,之后再进行下一步:bt_tws_user_key(0x16);//括号内的数字即为传递的参数,上面是0x16第二步:定义一个系统的消息,去处理第一步传送过来的下一步动作,Bsp_key...

2020-03-25 17:33:43 702

原创 蓝牙耳机芯片,苹果弹窗电量显示为0的解决方法

之前的蓝牙耳机重新都是默认电量为100%,但是后来添加了充电仓模块的程序之后,在选择使用一般充电仓的时候,手机弹窗就会0%,解决方法如下:更新之后,我们能够发现原厂在之前的基础上进行了更深一步的封装,你看不到弹窗的数组了,取而代之的是修改的渠道。具体操作如下:在bsp_ble.c中,u8 ble_get_house_bat(void){#if BT_TWS_NAME_MENU_EN ...

2020-03-12 17:50:35 4557 3

原创 使用T卡无线升级的方法

离线更新的文件:config_extra.h中#define UPD_FILENAME "fw5000.upd"func_update.c中,更新的函数,所以我们需要将升级的文件命名为“fw5000.upd”第一步:我们需要准备好烧录的程序,在烧录工具中选择好对应的配置信息,然后点击右上角的转换按钮,将文件类型选择为*.upd,然后名字为fw5000.upd点击保存即可。第...

2020-03-12 14:58:19 878 1

原创 通过电位器修改声音大小

通过电位器修改声音大小从原理上讲就是重新写一个按键类型,只不过按键类型是一个旋钮,旋钮就相当于一个滑动变阻器,通过旋转之后,芯片的读取到的电压值是在变化的,咱们再根据值的不同进行下一步的操作。具体操作如下:定义一个宏定义来管理是否打开旋转声音控制#define POTENT_KEY 1下一步就是创建一个读取旋转数据的IO口,key_init()中:#if POTENT_KEY ...

2020-03-12 14:49:34 3411

原创 兰讯配置工具信息规则

这里介绍一下兰讯的配置工具中配置信息的规则,正是因为有了这个配置工具,使得软件配置修改变得更加容易上手。config(SUB, “A”, “B”);//这个能够创建一个左侧的目录。A为目录的名字,B是解释这个目录是干什么用的,但是不会显示出来.图示如下:config(CHECK, “A”, “B”,C, D, E);//这个是一个选项。A为提示配置的名字,B为解释是干什么的,但是不会显示出来,...

2020-02-24 16:37:47 626 2

原创 网络-四次挥手

之前有写过建立连接的时候使用的方法为三次握手,现在描述一下断开连接的方法:四次挥手。图示如下:其中:FIN为终止标志位,断开连接时有效;ACK:确认标志位,收到对方的数据包,用于通知对方已收到; seq:序列号;ack:确认号;序列号和确认号之间的依次+1就保证了数据包传输的完整性,如果中间有丢失数据包,能够通过序列号和确认号之间的关系找到是哪一个数据包丢失。可以形象的记忆为:客户端需要断开...

2020-02-10 14:59:26 230 1

原创 网络-三次握手

三次握手针对的是TCP协议的创建连接,TCP协议是全双工的通讯方式(即存在两条通讯网络,接收和发送不是同一条网络)。三次握手图示如下:其中:SYN:同步标志位,在创建连接时有效;ACK:确认标志位,收到对方的数据包,用于通知对方已收到; seq:序列号;ack:确认号;序列号和确认号之间的依次+1就保证了数据包传输的完整性,如果中间有丢失数据包,能够通过序列号和确认号之间的关系找到是哪一个数...

2020-02-03 12:10:00 630 1

原创 网络-TCP、IP协议

由于武汉疫情上班推迟,大家又可以多休息一周,祝大家新年快乐,鼠你最健康,祝CSDN越来越好!随着因特网的发展,在1983年,TCP/IP协议成为标准协议,目的是为了不同计算机之间可以互联。两者都是网络协议,但是又有所区别:IP协议:目的:为实现在一个相互连接的网络系统上从源地 址到目的地传输数据包(互联网数据包)所提供必要功能的协议。特点:1、IP并不维护任何关于后续数据包的状态信息。每...

2020-02-01 10:37:11 1522 1

原创 使用IO口检测电源电压的转换逻辑

使用IO口检测电源电压主要是用于大功耗产品,电池电压会随着功耗的增大而变化,这个时候就要使用IO口来检测电压的变化。我们能够得到的是芯片IO口检测到电压的数字值,需要将其转换为实际的电压值方法如下:V为IO口检测到的实际电压(模拟值),vbat 为IO口电压换算之后的值,3.3是设置芯片IO口输入或者的最大电压值(实际可能会有偏差),255是软件储存电压变量的最大值,能够得到一个算式:3.3/...

2019-12-11 20:18:12 3393 1

原创 wav音频文件转换为sbc音频文件

当我们得到一个双声道的wav音频文件,要将它转换为sbc后缀的文件操作:第一步,需要将其转换为单声道的文件:①:打开Cool Edit Pro 2.1,将音频文件拖入其中;②:将鼠标移动到最上面或者最下面,鼠标旁边会出现“L”或者“R”的提示;③:鼠标左击选中,然后右键选择“复制为新的”,就会生产一个新的单声道的文件;④:另存为,后缀还是选择为wav,然后保存即可生产单声道的wav文件。...

2019-08-29 11:13:39 5437

原创 软件配合HT8691功放使用技巧

这个功放和之前碰到的功放有所不同,最显著的区别就是主控IC需要有两个口来控制它。功放工作一般有AB/D类,这个功放的控制方法为:CTRL1为高的时候就是工作在D类,D类又分为两种:ACF开启和关闭(ACF为防破音,只在D类有效)。下面是工作的模式配置:CTRL1和CTRL2都为高的时候,功放工作在D类,全功率输出 (ACF关闭);CTRL1高,CTRL2低的时候,功放工作在D类,ACF开启;...

2019-08-19 17:25:46 2940

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除