新手上路
- 积分
- 45
- 金钱
- 45
- 注册时间
- 2019-3-11
- 在线时间
- 16 小时
|
1金钱
串口中断函数
void DEBUG_USART_IRQHandler(void)
{
if(USART_GetITStatus(DEBUG_USARTx,USART_IT_RXNE)!=RESET)
{
ucTemp = USART_ReceiveData(DEBUG_USARTx);
// USART_SendData(DEBUG_USARTx,ucTemp); //串口监视作用
cStr[item]=ucTemp;
item++;
}
}
void ESP8266_StaTcpClient_UnvarnishTest ( void )
{
uint8_t ucStatus;
printf ( "\r\正在配置ESP8266 ......\r\n" );
macESP8266_CH_ENABLE();
ESP8266_AT_Test ();
ESP8266_Net_Mode_Choose ( STA );
while ( ! ESP8266_JoinAP ( macUser_ESP8266_ApSsid, macUser_ESP8266_ApPwd ) );
ESP8266_Enable_MultipleId ( DISABLE );
while ( ! ESP8266_Link_Server ( enumTCP, macUser_ESP8266_TcpServer_IP, macUser_ESP8266_TcpServer_Port, Single_ID_0 ) );
while ( ! ESP8266_UnvarnishSend () );
printf ( "\r\n配置 ESP8266 完毕 \r\n" );
// def = ESP8266_ReceiveString ( ENABLE ); //receive data
//while (*def!='\0')
// do{
// USART_SendData(DEBUG_USARTx , *def );
// def++;
// }
// while(*def!='\0');
//
while ( 1 )
{
ESP8266_SendString ( ENABLE,cStr, 0, Single_ID_0 ); //发送数据
item=0;
Delay_ms ( 100 );
//
//
if ( ucTcpClosedFlag ) //检测是否失去连接
{
ESP8266_ExitUnvarnishSend (); //退出透传模式
do ucStatus = ESP8266_Get_LinkStatus (); //获取连接状态
while ( ! ucStatus );
if ( ucStatus == 4 ) //确认失去连接后重连
{
printf ( "\r\n正在重新连接热点 ......\r\n" );
while ( ! ESP8266_JoinAP ( macUser_ESP8266_ApSsid, macUser_ESP8266_ApPwd ) );
while ( ! ESP8266_Link_Server ( enumTCP, macUser_ESP8266_TcpServer_IP, macUser_ESP8266_TcpServer_Port, Single_ID_0 ) );
printf ( "\r\n连接热点成功\r\n" );
}
while ( ! ESP8266_UnvarnishSend () );
}
}
}
想把receive data 和 send data 结合在一起,大神说要写个线程;或者用一个互斥标志,但是还是不知道怎么弄,求大佬帮忙解决!谢谢,解决了50R红包! |
|