工具/软件: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次或更多次、突然按下或释放按钮不会执行唤醒!!!