工具/软件:Code Composer Studio
大家好,
我正在尝试实施一个项目,使用带SIM800L GSM模块的MSP430F2416发送SMS。 该代码是在CCS 6.0 1编译器中开发的。 我在这里附上了我制定的守则。 对我来说,问题始终是我的移动只接收空短信,无论AT命令是通过MSP430 UART发送的。 所以我尝试使用超级终端通过PC向SIM800L模块发送AT命令,在本测试中 ,SMS文本已成功接收到移动设备。 我看到的唯一区别是对CTRL+Z (CHAR (26))的识别。
我还尝试过SIM900 GSM模块和MSP430 (通过UART发送AT命令),在这种情况下,成功接收了SMS文本。
由于msp30可以与SIM900模块配合使用,而SIM800L可以与超级终端通信正常工作,因此通过此测试结果,我可以确保MSP430和SIM800L模块都不会出现任何问题。 每当 我尝试 通过MSP430 UART与SIM800L通信时,只有移动设备收到空短信。 我找不到任何线索来解决这一问题。
但是,SIM800L模块的尺寸比SIM900模块的尺寸要小。 所以我只能使用SIM 800L模块。 是否有人会面对这样的问题呢? 此问题是否会因编译器问题而引起?
UART驱动程序已在轮询方法中实现。
提前感谢。
#include<MSP430-h>
#include <stdint.h>
#include
<stdlib.h>
#include <UART.h>
unsigned char CtrlZ =(char) 26;
unsigned char at[4]={"at\r\n";
unsigned cmgf[13]={"AT+CMGF=1\r\1s\n"unsigned
char f"=0+1\chgs\n"=0+1"\}
WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
UINT8_t索引= 0,I = 0;
uINT32_t k = 0;
Int ind = 0;
unsigned char tmpLatLong [10]={0};
无符号char txfrBuffer[1]='a';
//__bis_sr_register (GIE); //中断已启用
UART_Open (1);
UART_Open(0);
UART_TXN (&AT[0],4,1);
K = 20万;
执行{
--k;
} 同时(k > 0);
UART_TXN (&cmgf[0],sizeof(cmgf),1);
K = 20万;
执行{
--k;
} 同时(k > 0);
UART_TXN (&cmgs[0],sizeof (cmgs),1);
K = 20万;
执行{
--k;
} 同时(k > 0);
UART_TXN (&txfrBuffer[0],sizeof (txfrBuffer),1);
K =200万;
执行{
--k;
} 同时(k > 0);
UART_TXN (&CtrlZ,大小(CtrlZ),1);
K = 20万;
执行{
--k;
} 同时(k > 0);
while (1);
}