兰讯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连接之后关掉灯控
{
	//由于灯光控制是在底层的硬件中断中控制,
	//所以在这里直接对灯控进行操作是不起作用的,
	//软件中断处理会出现灯光闪烁的问题,无法做到真正的灭灯
	//LED_SET_OFF();       //这样修改是不行的
	//LED_PWR_SET_OFF();   //这样修改是不行的

	//下面是OK的修改
	led_off();
	rled_off();
}	

由于5系列芯片之后灯控写入底层,看不到具体实现,可以通过查看2系列的源代码查找原因:

void led_off(void)
{
    led_cb.bled_sta = 0x00;
    bled_set_off();
}
void rled_off(void)
{
    led_cb.rled_sta = 0x00;
    rled_set_off();
}
//50ms调用周期
void led_scan(void)
{
	//中断每50ms调用一次,‘&’后面为配置的IO口,
	//实际控制由前面变量决定,所以修改前面变量才能够真正的将灯光显示关掉
	if (led_cb.bled_sta & BIT(led_cb.bcnt)) 
	{
		bled_set_on();
	} else {
		bled_set_off();
	}
	if (led_cb.rled_sta & BIT(led_cb.bcnt)) 
	{
		rled_set_on();
	} else 	{
		rled_set_off();
	}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值