esp8266 - AT+CIPSENDEX 返回链接无效
问题描述
我正在使用 ESP8266 和 STM32F4。我的问题是;当我尝试发送 AT+CIPSEND 命令时,我看到一个错误:链接无效。我没有发布huart2
初始化,因为其他命令正常工作。
我发送 AT 然后代码转到 USART2_IRQHandler
这是我的尝试:
uint8_t rx_data;
char veri[100];
uint8_t rx_index=0;
char ok[3]= "OK";
char command[]="GET /update?api_key=A0AISRD6SB8SKH4J&field1=20.4\r\n";
int senddt=5;
char connected[9]="CONNECTED";
char send_data[60];
char transmitdata[100];
char str[100];
char connectrn[9] = "CONNECT\r\n";
int length;
int byrk=0;
char transmitconf[100];
char bigger[1]=">";
void USART2_IRQHandler(void)
{
/* USER CODE BEGIN USART2_IRQn 0 */
/* USER CODE END USART2_IRQn 0 */
HAL_UART_IRQHandler(&huart2);
/* USER CODE BEGIN USART2_IRQn 1 */
HAL_UART_Receive_IT(&huart2,&rx_data,1);
veri[rx_index]=rx_data;
rx_index++;
if (memmem(veri,40,ok,2)!= NULL && byrk==0)
{
HAL_UART_Transmit(&huart2,(uint8_t*)"AT+CWMODE=1\r\n",sizeof("AT+CWMODE=1\r\n")-1,100);
delay_ms(1000);
HAL_UART_Transmit(&huart2,(uint8_t*)"AT+CWJAP=\"mike\",\"mike123\"\r\n",
sizeof("AT+CWJAP=\"mike\",\"mike123\"\r\n")-1,100);
delay_ms(2000);
byrk=1;
}
if(memmem(veri,40,connected,9)!= NULL && byrk==1 )
{
delay_ms(2000);
HAL_UART_Transmit(&huart2,(uint8_t*)"AT+CIPSTART=\"TCP\",\"184.106.153.149\",80\r\n",
sizeof("AT+CIPSTART=\"TCP\",\"184.106.153.149\",80\r\n")-1,100);
byrk=2;
delay_ms(2000);
delay_ms(1000);
length = strlen(command);
length=length+2;
sprintf(str,"AT+CIPSENDEX=%d\r\n",length);
HAL_UART_Transmit(&huart2, (uint8_t *)str,strlen(str), 500);
}
if(memmem(veri,60,bigger,1)!= NULL) // **wait for > before sending data**
{
sprintf(send_data,"GET /update?api_key=A0AISRD6SB8SKH4J&field1=%f\r\n",20.4);
HAL_UART_Transmit(&huart2, (uint8_t *)send_data,strlen(send_data), 500);
}
/* USER CODE END USART2_IRQn 1 */
}
解决方案
推荐阅读
- wso2 - 通过代码 WSO2 Identity Server 配置服务提供者
- java - 每次刷新后在java中写入文件时查看文件的大小和内容(新添加的字符串)
- php - PHP:如何修复 array_pop 和值 0
- c# - C#-Mssql | 同网2台电脑同时连接公网数据库的问题
- python - 处理文本文件并将其导出为 csv 文件
- php - 使用 mysql 中的 json 字段获取页面内容
- java - 我的 RabbitMQ 订阅代码不起作用
- haskell - 在不是函子的东西上使用镜头
- c# - 在 ColdFusion 中将变量传递给 .NET dll
- angular - Angular 7 响应式下拉菜单