This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP432P401R:无法使用GSM模块sim808和MSP432将数据发布到远程服务器

Guru**** 2533390 points
Other Parts Discussed in Thread: MAX232

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/576270/msp432p401r-unable-to-post-data-to-remote-server-using-gsm-module-sim808-and-msp432

部件号:MSP432P401R
主题中讨论的其他部件:MAX232

您好,

我正在使用MSP432P01R 启动板通过UART与SIM808 GSM模块通信。 我希望基于HTTP协议将数据发布到远程服务器。  

MSP432和GSM模块之间的通信基于AT命令。 为了 监控通过微控制器发送至GSM模块的指令,我已将GSM的TX连接至MAX232,并通过超级终端将数据发送至PC。

在下面提到的代码中,我能够执行所有AT命令,并在PC上的超级终端上获得相应的响应。 但该问题出现在说明 "AT+HTTPDATA=720000"中,在GSM模块中,返回下载以表示它已准备好接收要发送到服务器的数据, 但是,当执行要发送的数据(即 “id=1” )时,在超级终端上不显示任何内容。程序将继续执行。GSM将返回400作为HTTP的错误,该错误请求是错误的。

#include "driverlib.h"
#include <MSP.h>
void clockInit(void);
//------------------ 时钟初始化@ 48MHz---------------------------
void clockInit (void)
{
/* 2个闪存等待状态,VCORE =1,正在关闭直流-直流,48 MHz */
Flashctl_setWaitState(flash_BANK0, 2);
Flashctl_setWaitState(flash_Bank1,2);
PCM_setPowerState (PCM_AM_DCDC_VCORE1);
cs_setDCOCenteredFrequency (CS_DCO_Frequency_48);
cs_setDCOFrequency(4800万);
cs_initClockSignal (CS_MCLK,CS_DCOCLK_SELECT,1);
cs_initClockSignal (CS_SMCLK,CS_DCOCLK_SELECT,1);
cs_initClockSignal (CS_HSMCLK,CS_DCOCLK_SELECT,1);

返回;
}//------------------

正在设置UART波特率@ 9600------------------
const eUSI_UART_Config uartConfig ={

EUSCI_A_UART_CLOCKSOURCE_SMCLK, // SMCLK时钟源
312 // BRDIV = 78
8, // UCXBRF = 2
0, // UCXBRS = 0
EUSCI_A_UART_NO_PARity, //不奇偶校验
EUSCI_A_UART_LSB First, // MSB优先
EUSCI_A_UART_ON_STOP_BIT, //一个停止位
EUSCI_A_UART_MODE, // UART模式
EUSCI_A_UART_oversampling_BAUDRATE_generation // Oversampling
};//---------------

在UART中传递字符串的函数---------------------------
void UART_STRING(char*str)
{
	while (*str !='\0')
	{
		while (!(UCA0IFG & UCTXIFG));
		UCA0TXBUF=*str;
		str++;
	}//-------


在UART中发送命令的函数-------------------------------
void UART_cmd(unsigned int cmd)
{while
	(!(UCA0IFG & UCTXIFG));
	UCA0TXBUF=cmd;
}//------------------

主计划-------------------------------
int main (void)
{

/*正在停止WDT */
WDT_A_HoldTimer();

clockInit();

无符号int I;
GPIO _setAsPeripheralModuleFunctionInputPin (GPIO_PORT_P1,
GPIO _PIN1|GPIO _PIN2 | GPIO _PIN3,GPIO主要模块功能);

P1DIR|=BIT0;
P1OUT&=~BIT0;

/*配置UART模块*/
UART_INITModule (EUSCI_A0_BASE,&uartConfig);

/*启用UART模块*/
UART_enableModule (EUSCI_A0_BASE);

UCA0IE|=UCTXIE;		//启用Rx和Tx中断

UART_STRING ("AT");						// GSM AT命令
UART_CMD (0x0A);							// Enter
UART_CMD(0x0D);							//载波返回
_DELAY周期(2.4亿);

UART_STRING ("AT+CPIN?");				// SIM PIN Ready
UART_CMD (0x0A);
UART_CMD(0x0D);
_DELAY周期(2.4亿);

UART_STRING ("AT+CREG?");				//检查注册的网络
UART_CMD (0x0A);
UART_CMD(0x0D);
_DELAY周期(2.4亿);

UART_STRING ("AT+CSQ");					//网络强度
UART_CMD (0x0A);
UART_CMD(0x0D);
_DELAY周期(2.4亿);

UART_STRING ("AT+SAPBR=3,1,\"类型\",\"GPRS\");		//连接GPRS
UART_CMD (0x0A);
UART_CMD(0x0D);
_delay_cycles (2.4亿);

UART_STRING ("AT+SAPBR=3,1,\" APN\",\"www\");			//设置APN名称
UART_CMD (0x0A);
UART_CMD (0x0D);
_Delay_Cycles (2.4亿);

UART_STRING ("AT+SAPBR=3,1,\";\"用户\" 				//将用户名设置为空白
UART_CMD(0x0A);
UART_CMD(0x0D);
_DELAY周期(2.4亿);

UART_STRING ("AT+SAPBR=3,1,\"PWD\",\"\"); 				//将密码设置为空白
UART_CMD(0x0A);
UART_CMD(0x0D);
_DELAY CYCLES (2.4亿);

UART_STRING("AT+SAPBR=1,1");								//启用GPRS
UART_CMD(0x0A);
UART_CMD(0x0D);

用于(i=0;I<=5;I++)
{
_delay_cycles(2.4亿);

}


UART_STRING("AT+SAPBR=2,1");								//获取本地IP
UART_cmd(0x0A);
cmd_cmd(0x0D);
_delay_cycles(2.4亿);

UART_STRING("AT+HTTPINIT");								//初始化
UART HTTP_UART(0x0A);
UART_cmd(0x0D);
_delay_cycles(2.4亿);

UART_STRING("AT+HTTPPARA=\"CID\",1");						//设置HTTP
UART_cmd(0x0A);
UART_cmd_cmd(0x0D);UART_DELAY
_CYCLES (2.4亿);_STRING_UAR_2.4亿;

UAR_UAR_UAR_UAR_UAR_UAR=0000; UARUAR_2400.001万_UAR_UAR_UAR_UAR_UAR;_240000000; ");240000000">trendzworld.000webhostapp.com/api.php\"");240000000 ");">trendzworld.000webhostapp.com/api.php\"");		




UARUAR_2.4亿; UAR_UARUAR_UAR=02000(art_UAR_UARUARUAR_UAR=02000; UARUARUAR_UAR_UAR_UARUAR_UAR_UAR_D02000 UARUARUAR_UAR_UAR_UARUAR_UAR_UAR_D			




				@ 0cm010;_2400.001万;_24000010;_24000010_UARUAR;_2400002000_D堆2400.001万堆叠24000010叠式2400002000式UAR_2400.001万;_24000010;_UAR</s>24000010





			




UART_STRING ("AT+HTTPACTION=1");		//HTTP Post
UART_CMD(0x0A);
UART_CMD(0x0D);
_DELAY周期(2.4亿);

P1OUT|=BIT0;					//指示代码结束

while (1);

}

另外,我还想提及的是,上述所有AT命令都是使用超级终端软件独立执行的,而且数据的发布也是成功的。

感谢您的任何帮助

此致,

Amit Kotal  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的结论是,您的GSM调制解调器(使用)有问题,而不是msp432。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,开始了...如果你能提供任何帮助?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉,这不是GSM调制解调器支持论坛。