微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 从PM3模式唤醒后,广播打不开?

从PM3模式唤醒后,广播打不开?

时间:10-02 整理:3721RD 点击:

我从PM3模式唤醒后,在中断里打开了广播,但是手机还是搜不到蓝牙,请问这是为什么啊?怎么做,才可以唤醒后,打开广播。谢谢了

yafan,

你是怎么在中断里打开广播的呢?秀一下代码。

#pragma vector = P2INT_VECTOR
__interrupt void P2_ISR(void)
{
    P2_0_INTERRUPT_DISABLE();
    P2_INTERRUPT_DISABLE();
    ALL_INTERRUPT_DISABLE();
    if(P2IFG & P2_0_BIT)         //按键中断
    {
        P2_0_CLEAR_FLAG();
        if(PICTL & 0x08)//如果是上升沿,则设为下降沿,
        {
            P2_FALLING_INTERRUPT();
            PowerMode(3);
        }
        else
        {
            P2_RISING_INTERRUPT();//此时应该打开广播
            uint8 new_adv_enabled_status = TRUE;
            GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &new_adv_enabled_status ); //这是打开广播的代码,我仿真过,可以执行到这一句,但是广播没有打开。
        }
    }
    P2_0_INTERRUPT_ENABLE();
    P2_INTERRUPT_ENABLE();
    ALL_INTERRUPT_ENABLE();                         //开中断
}

 

为什么不在应用层做呢,跑到底层做做什么应用

我试过在应用层做,但是还是不可以啊

yafan,

你的“   PowerMode(3)” 是怎么回事?

如果是你在手动控制power mode的话,希望你停止这样使用。

power mode是由osal自动控制的,只要有外部中断,就会从PM3 醒过来,没有任何外部动作,系统会自动进入PM3,不需要你手动去操作,如果你手动操作的话,会引起混乱。

PM3是我手动控制的。系统不是只自动进入PM2吗?如果能自动进入PM3,请问OSAL是如何操作的,我现在的项目,在P2.0脚高电平时,完全睡眠,如果不是自己手动操作,那该怎么做啊?

yafan,

PM2和PM3都是系统自动控制进入的。

有兴趣你可以看一下 halSleep() 哦,聪明的你肯定能看到系统是怎么去调度PM2和PM3的。

呵呵。我觉得我挺笨的,要不然怎么会这个问题都解决不了。哈哈。谢谢你。我现在就去研究一下代码。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top