• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

单片机执行完之后不向下执行了【已解决】

zhczlzhang 2020-11-24 浏览量:655

如题所示,我的stm32单片机在执行完AliIoT_HTTPsend(); 程序之后,应该向下执行

    time_sta = 5;                                 
   u1_printf("time_sta的值:%d\r\n"time_sta); 
   u1_printf("发送了数据\r\n");

但是通过串口发现,并没有执行,而是一直停在AliIoT_HTTPsend();这里,来回重启之后,还是卡在这里不动,请问如何解决。是什么问题?

void AliIoT_HTTPsend(void)
{  
	char temp[128];                                                     
        memset(TXbuff02048);                                             
	sprintf(&TXbuff[2]"POST /topic%s HTTP/1.1\r\n"HTTP_TOPIC_NAME);   
	memset(temp0128);                                               
	sprintf(temp"Host:%s\r\n"ServerName);                             
	strcat(&TXbuff[2]temp);                                       		
	memset(temp0128);                                            		 
	sprintf(temp"password:%s\r\n"Authtoken);                     		 
	strcat(&TXbuff[2]temp);                                      		
	strcat(&TXbuff[2]"Content-Type: application/octet-stream\r\n");     		
	memset(temp0128);                                            		 
	sprintf(temp"Content-Length: %d\r\n"Postdata_len);          		 
	strcat(&TXbuff[2]temp);                                       		
	strcat(&TXbuff[2]"Connection: keep-alive\r\n\r\n");                 	
	strcat(&TXbuff[2]Postdata);                                         
	TXbuff[0] = strlen(&TXbuff[2])/256;                                 
	TXbuff[1] = strlen(&TXbuff[2])%256;                                 
	W5500_TxData((unsigned char *)TXbuff);                              

											
}
AliIoT_HTTPsend();一直执行到底,W5500_TxData();执行完成后,出现了“发送数据成功,等待接收... ...”,这表明了W5500_TxData执行完成,但是就是不返回main函数,不向下执行

    time_sta = 5;                                 
   u1_printf("time_sta的值:%d\r\n"time_sta); 
   u1_printf("发送了数据\r\n");

很惆怅,不知道什么情况,求解答?

微信图片_20201124111828.png

微信截图_20201124112346.png

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:5
  • 为什么没有打印:发送了数据.?
zhczlzhang 回复了 Andrewz:这就是问题啊?它不向下执行,执行完AliIoT_HTTPsend();就死在这里了。 回复

  • 看一下这个函数里面,是否有while阻塞判断,一般就是卡在那边
zhczlzhang 回复了 yhj416606438:没有while函数 回复

  • 很可能是W5500_TxData 的调用没有正确返回啊。因为没有 W5500_TxData相关信息,不知道具体哪里有问题。
zhczlzhang 回复了 xdsnet:W5500_TxData 不需要返回,发送完成就结束了 回复
xdsnet 回复了 xdsnet:那可能是W5500_TxData 没有正确结束啊 回复

  • 已解决,是w5500自身的问题,通过w5500发送的数据超出硬件的设置后,就会死机。跟程序无关。

相关问题

问题达人换一批

单片机执行完之后不向下执行了【已解决】