工具/软件:Code Composer Studio
您好!
我正在为 LPM4唤醒感到苦恼。 有两个源将唤醒处理器:按钮按压和 UART 数据。 按下按钮大多数时间都会唤醒我的 MSP -但并非总是唤醒。 UART 绝不会。 我不能理解为什么。 下面是一些代码片段(很抱歉、但代码荧光笔似乎对我不起作用):
在主循环内:
while (1)
{
静态 uint16_t 计数= MAIN_SLEEP_TIMEOUT_MS;
WAIT_milliseconds (1);
if (signal_anySignalsSet ()== false)
{
if (--count ==0)
{
计数= MAIN_SLEEP_TIMEOUT_MS;
bluetooth_sleepUART();
_bis_SR_register (LPM4_bits | GIE); //进入 LPM4、中断被启用
__no_operation();
}
}
if (semaphore_check (semaphore_uart_line)=true)
{
}
}
在 UART 中断内:
if (rxByte == CR) { Semaphore_send (semaphore_uart_line); BIC_SR_register_ON_EXIT (LPM4_BITS); }
在按钮中断内:
if (STOR_IFG & Button1_Falling)//按钮被按下
{
//去抖
WAIT_milliseconds (5);
if (((P1IN & Button1_Falling)=0)//必须保持为0
{
signal_send (signal_button_pressed);
DEBUG_PIN1_TGL ();
//_BIC_SR_REGISTER_ON_EXIT (LPM4_BITS);
__no_operation();
}
}//按钮下降
我按下按钮3次或更多次、突然按下或释放按钮不会执行唤醒!!!