安卓蓝牙启动(第四篇)

打开蓝牙就是把按钮拔过去,最简单的理解就是上电

linux蓝牙上电直接

echo 0 > /sys/class/rfkill/rfkill0/state

sleep 2

echo 1 > /sys/class/rfkill/rfkill0/state

sleep 2

 

还是在start_up上面

红框意思差不多就是

echo 0 > /sys/class/rfkill/rfkill0/state

echo 1 > /sys/class/rfkill/rfkill0/state

经常需要延时才比较稳定一些,模组的硬件要求

echo 0 > /sys/class/rfkill/rfkill0/state

sleep 2

echo 1 > /sys/class/rfkill/rfkill0/state

看看vendor->send_command

hci_layer.c->vendor.c->bt_vendor_rtk.c

这里就是调用了vendor的普通接口,vendor有两个接口,一个是普通接口,一个是回调接口主要在hardware.c

rfkill主要就是在vendor的普通接口

bt_vendor_rtk.c中的普通接口的op命令

通过调用upio.c的upio_set_bluetooth_power来控制引脚电平,所以你不用外加延时了

看看upio_set_bluetooth_power

进去upio.c

思路就是

拿到rfkill 的patch,拿到&buffer, buffer就是0或者1

通过write (fd ,&buffer,1)  写一个长度把0或者1写进去

和这个echo 0 > /sys/class/rfkill/rfkill0/state

是一样的,同样是下这个命令

所以在hci_module  start_up的时候,通过vendor下命令的方式,下发命令,和linux的方式是一样的

echo 0 > /sys/class/rfkill/rfkill0/state

delay xxx

echo 1 > /sys/class/rfkill/rfkill0/state

最后说一下那个延时是蓝牙经常需要调的地方,特别是压力测试,经常需要把时间调大,或者硬件不稳,也需要把时间调大,一般出现问题后直接丢个sleep 5秒看看再说

第五篇再说说bt rfkill驱动,里面还有唤醒引脚各种

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值