我以前写过类似的东西。有一种方法可以使用 AT 命令告诉调制解调器在每次收到 SMS 时向您发出信号。
作为参考,我正在使用Maestro 100 GSM 调制解调器 http://www.maestro-wireless.com/modules/product.php在嵌入式应用程序中。
首先,您必须正确初始化调制解调器。我使用文本模式发送短信,但您可能使用不同的模式。从这些中选择你想要的。 AT+CNMI是最重要的。
AT&F0 # Restore factory defaults
ATE0 # Disable command echo
AT+CMGF=1 # Set message format to text mode
AT+CNMI=1,1,0,1,0 # Set new message indicator
AT+CPMS="SM","SM","SM" # Set preferred message storage to SIM
然后您将等待消息通知,如下所示。 (索引号不匹配,不同通知之间可能会有所不同)
+CMTI: "SM",0 # Message notification with index
当您收到该通知时,检索未读短信:
AT+CMGL="REC UNREAD" # Retrieve unread messages
我建议您还添加一次民意调查,也许每 5 分钟左右一次,以防您错过通知。对于串行通信,您永远无法确定!