ESP8266和ATmega8 UART

问题描述 投票:0回答:1

我使用UART将ESP8266与ATmega8连接。我将一些值从ESP8266发送到ATmega8,在此基础上,ATmega8向ESP8266发送了一些值,并且工作正常,但是几个小时后,ATmega8确实在将ATmega8重置为正常后发送了数据,但几小时后又再次发送数据停止发送数据。

//ESP8266 CODE
    Serial.write(post_data);
    delay(2000);
    String port_status = "";
    if (Serial.available()) {
        incomingByte = Serial.read();
        delay(2000);
        if(incomingByte == 70) {
          pin_status = '0';
        }
        if(incomingByte == 79) {
          pin_status = '1';
        }
    }

//ATMEGA8 CODE
 int main() {
   unsigned char reccive;
   unsigned char ch;
    while(1) {
        while(! (UCSRA & (1<<RXC)));
        {
            reccive = UDR;
            ch = ' ';
            if(reccive == 'A') {
                reccive = ' ';
                _delay_ms(500);
                    ch = 'O';
                    while(! (UCSRA & (1<<TXC)));
                    {
                        UDR = 'O';
                        _delay_ms(500);
                    }  
            }
            else {
                ch = 'F';
                    while(! (UCSRA & (1<<TXC)));
                    {
                        UDR = 'F';
                        _delay_ms(500);
                    } 
            }    
         }
      }
}
esp8266 uart serial-communication atmega
1个回答
0
投票

可能是您的串行缓冲区已满。实现串行刷新功能或看门狗功能,以软复位(非常肮脏的方式)Arduino。如果您可以将此日志记录到某个地方,请尝试查看它是否在一定时间后总是停止,或者是否是随机的。这样,您可能会在问题上产生更多的见解。

© www.soinside.com 2019 - 2024. All rights reserved.