当前位置:首页 > C51单片机控制sim900a收发信息c语言程序
sprintf(ttyBuffer, \ Uart1_PutString(ttyBuffer);
if(Uart1_GetString(ttyBuffer, TTY_MAX_BUFFER_SIZE, 1000) == 0) {
Uart0_PutString(\ return -1; }
if(strstr(ttyBuffer, \没有找到命令成功执行的结果,函数返回,否则命令执行成功 {
Uart0_PutString(\断开连接失败.\\n\\r\ return -1; }
return 0; } /**
* @brief 关闭网络功能
* @author SwanTech (2011/12/12) * @param */
char SwanTech_TCPIP_NETShut(void) {
//! AT+CIPSHUT [关闭网络功能]
sprintf(ttyBuffer, \ Uart1_PutString(ttyBuffer);
if(Uart1_GetString(ttyBuffer, TTY_MAX_BUFFER_SIZE, 1000) == 0) {
Uart0_PutString(\ return -1; }
if(strstr(ttyBuffer, \没有找到命令成功执行的结果,函数返回,否则命令执行成功 {
Uart0_PutString(\关闭网络功能失败.\\n\\r\ return -1; }
return 0; } /**
* @brief SIM900_TCPIP数据发送函数
* @author SwanTech (2011/12/12)
* @param pBuffer: 数据缓冲区地址 * @param nBufferLen: 数据长度 */
short SwanTech_TCPIP_Send(char* pBuffer, unsigned short nBufferLen) {
//! 请求发送数据 //! AT+CIPSEND
sprintf(ttyBuffer, \ Uart1_PutString(ttyBuffer);
if(Uart1_GetString(ttyBuffer, TTY_MAX_BUFFER_SIZE, 1000) == 0) {
Uart0_PutString(\ return -1; }
if(strstr(ttyBuffer, \== NULL) //! 没有找到命令成功执行的结果,函数返回,否则命令执行成功 {
Uart0_PutString(\请求发送数据失败.\\n\\r\ return -1; }
//! 发送数据
Uart1_PutString(pBuffer);
if(Uart1_GetString(ttyBuffer, TTY_MAX_BUFFER_SIZE, 1000) == 0) {
Uart0_PutString(\ return -1; }
if(strstr(ttyBuffer, \没有找到命令成功执行的结果,函数返回,否则命令执行成功 {
Uart0_PutString(\发送数据失败.\\n\\r\ return -1; }
return nBufferLen; } /**
* @brief SIM900_TCPIP数据接收函数 * @author SwanTech (2011/12/12) * @param pBuffer: 数据缓冲区地址 * @param nBufferLen: 缓冲区大小
*/
short SwanTech_TCPIP_Recv(char* pBuffer, unsigned short nBufferLen) {
//! 判断应答数据到来标志[+CIPRXGET:1]
if(Uart1_GetString(ttyBuffer, TTY_MAX_BUFFER_SIZE, 10000) == 0) {
Uart0_PutString(\ return -1; }
if(strstr(ttyBuffer, \== NULL) //! 没有找到命令成功执行的结果,函数返回,否则命令执行成功 {
Uart0_PutString(\获取应答数据标志失败.\\n\\r\ return -1; }
//! 读取应答数据
Uart1_PutString(\
if(Uart1_GetString(ttyBuffer, TTY_MAX_BUFFER_SIZE, 30000) == 0) {
Uart0_PutString(\ return -1; }
if(strstr(ttyBuffer, \== NULL) //! 没有找到命令成功执行的结果,函数返回,否则命令执行成功 {
Uart0_PutString(\读取应答数据失败.\\n\\r\ return -1; }
return 1; }
void SwanTech_CommandMonitor(void) {
unsigned char bFinishConfig = 0; unsigned char bFinishConnect = 0; char buffer[3] = {0};
while(1) {
Uart0_GetALine(buffer, 2, 0);
//! 如果连续收到2个0x7F,那么认为是STC-ISP正在请求下载程序 //! 这时候启动系统复位,从ISP监控程序重新引导
if(buffer[0] == 0x7F && buffer[1] == 0x7F) IAP_CONTR = 0x60;
Uart0_PutString(\ if(buffer[0] == '1') {
if(SwanTech_TCPIP_Config() == -1) {
bFinishConfig = 0; //! 配置失败的标志
Uart0_PutString(\开启TCPIP网络功能失败!\\n\\r\ } else {
bFinishConfig = 1; //! 配置成功的标志
Uart0_PutString(\开启TCPIP网络功能成功!\\n\\r\ } }
else if(buffer[0] == '2') {
if(bFinishConfig == 0) //! 如果没有开启TCPIP网络功能,那么返回失败 Uart0_PutString(\请先开启TCPIP网络功能!\\n\\r\ else if(SwanTech_TCPIP_Connect() == -1) {
bFinishConnect = 0; //! 连接失败的标志 Uart0_PutString(\连接服务器失败!\\n\\r\ } else {
bFinishConnect = 1; //! 连接成功的标志 Uart0_PutString(\连接服务器成功!\\n\\r\ } }
else if(buffer[0] == '3') {
strcpy(tcpipBuffer, \鸿鹄电子科技. Http://swantech.taobao.com/\ if(bFinishConnect == 0) //! 如果成功连接到服务器,那么返回失败 Uart0_PutString(\请先连接服务器!\\n\\r\
else if(SwanTech_TCPIP_Send(tcpipBuffer, strlen(tcpipBuffer)) == -1) Uart0_PutString(\发送数据失败!\\n\\r\ else
Uart0_PutString(\发送数据成功!\\n\\r\ }
else if(buffer[0] == '4') {
共分享92篇相关文档