我用2个CC2540,一个做主机,一个做从机,主从机都设置为GAPBOND_PAIRING_MODE_INITIATE,一开始用正确密码配对了下,然后密码修改为不一样,并且主从机程序都重新下载了(程序下载后,保存在flash中的配对信息应该擦除了吧),但是还是能配对上?
Yan:
hy xu,
你的IO capability 设置的的是GAPBOND_IO_CAP_NO_INPUT_NO_OUTPUT?这种情况下就是Just work,用默认密码000000,你设置的密码直接被忽略。
user4198369:
回复 Yan:
hi Y:
主从的我都设置为uint8 ioCap = GAPBOND_IO_CAP_DISPLAY_ONLY的;
Yan:
回复 user4198369:
hy xu,
你的产品有按键功能吗?如果有按键的话,有数字输入功能吗?
两边都是display only的话也只能just work。。。。。。
你需要其中一方有按键输入功能才能用你自己设置的密码。
user4198369:
回复 Yan:
hi Y:
我主从模块都没有按键和显示功能的,我是想主机连接从机后能互相用这个密码配对
user4198369:
回复 Yan:
hi Y:
我主从模块都没有按键和显示功能,我是想主从模块在连接后程序内部自己去配对这个密码,主机和从机内部都设置了密码,主机连接从机后,从机会请求主机密码,然后主机发送密码给从机,从机来进行配对?
主机输入密码只能靠按键来输入,不能程序里自己处理?
Yan:
回复 user4198369:
hy xu,
密码不是在空中发来发去的,这样不安全。密码是两边经过一系列协商各自算出来的,这个是蓝牙的core spec中link layer和SMP协议决定的。
所以以你的情况,只能是Just works, 六个0,没有办法。
user4198369:
回复 Yan:
那就说明配对绑定只能针对手机app(或者有按键可以输入密码的)和CC2540从机,而不能用于CC2540主从机(程序自处理)
Yan:
回复 user4198369:
hy xu,
just work只是配对的一种方式。
用Just work也一样可以进行配对和绑定。像iOS默认就是通过just work的配对方式进行绑定。
user4198369:
回复 Yan:
hi Y:
just work是用默认的密码000000来进行配对吗,那这样岂不是默认接受互相配对了,达不到用自己设置密码的设备进行互相配对?
Yan:
回复 user4198369:
hy xu,
是的,just works用的是000000来配对。
你想用自己设置密码,你可以把其中一个设置成DISPLAY ONLY,另外一个KEYBOARD ONLY或者KEYBOARD DISPLAY, 这样就能在display only 的那个设备中显示你设置的密码,然后让另外一个带keyboard 功能的设备去输入你显示出来的密码。
你可以参考一下:http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/t/112619.aspx