我再做一个按键修改广播数据的代码,我现在的思想是:当我按下按键时候发出按键中断,在中断中使用GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), ¶m )来停止广播,修改完广播数据以及其他参数后再使用GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), ¶m )来开启广播。但是现在的情况是按下按键有广播了,如果广播时间不到,按下其他按键并不能改变广播数据,反而是延长了广播时间。只有当广播停止后,按下其他按键广播数据才会改变。我使用GAP_SetParamValue( TGAP_LIM_ADV_TIMEOUT, INITIAL_ADV_TIMEOUT)来设定定时时间。
大概的意思就是,我需要按下按键1就发广播1,按下按键2就发送广播2.但是现在的情况是:我按下按键1,发出了1的广播包;但是此时1的广播包没有停止的话,我按下按键2,发的依然是1的广播包,而且时间还延长了(在1广播包不停止情况下频繁按下任意按键会一直广播1的广播包);只有当1的广播包停止,按下按键2才会发送2的广播包,其他也是同样情况。
我试过了先关闭一段时间再设置参数开启广播等方法,但是均没有效果。现在想不明白为什么会这样,难道广播停止一定要定时时间到自动停止而不能够,软件停止?