Amazon에서 범용 8핀 ESP8266을 구입했습니다. 일부 "AT" 명령 펌웨어가 로드되어 모뎀처럼 작동합니다. 직렬 포트처럼 작동하는 USB 연결 UART인 FTDI1232에 모듈을 연결했습니다.
USB ID는 다음과 같습니다.
Bus 002 Device 010: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
/dev/ttyUSB0
내 시스템에서는 그런 것 같습니다 . Ubuntu 14.04 시스템에 CuteCom을 설치하고 속도 115200, 패리티 없음, 8비트 문자 및 1 정지 비트를 선택했습니다. CuteCom을 이용하여 정상적으로 통신하여 데이터를 주고받을 수 있습니다.
하지만 이 기본 펌웨어는 별로 사용하지 않습니다. Arduino IDE의 최신 버전을 다운로드하고 추가 코어 패키지를 통해 ESP8266 지원을 추가했습니다.
이 장치를 프로그래밍하기 위해 이 다이어그램에 따라 ESP8266을 연결했습니다.
이것은 기본적으로 제가 이미 갖고 있는 회로입니다.RTS 및 DTR 라인을 추가해야 합니다.이것을 완료하려면.
아래와 같이 매우 간단한 스케치를 만들었습니다.
void setup(){
Serial.begin(115200); // 8 bit char, no parity, 1 stop bit
while(!Serial){};
}
void loop(){
int v = Serial.read();
if(-1 != v){
Serial.write((uint8_t)v);
}else{
delay(10)
}
}
이는 장치에 기록된 모든 내용을 다시 기록해야 하는 기본 "에코" 유형 스케치입니다.
스케치를 업로드한 후 도구->직렬 모니터를 사용하여 상호 작용할 수 있습니다. 나는 전송되는 데이터를 변환한 다음 다시 에코하는 몇 가지를 더 만들었습니다. 그들은 모두 작동합니다.
이 시점에서는 CuteCom이 전혀 작동하지 않습니다. 원인을 검색한 후 마침내 Java 코드에서 직렬 모니터 구현을 살펴보았습니다. 내가 찾은 것은 이 줄이었다.
!BaseNoGui.getBoardPreferences().getBoolean("serial.disableRTS"),
!BaseNoGui.getBoardPreferences().getBoolean("serial.disableDTR"));
기본적으로 각 "보드"(SDK가 ESP8266과 통신할 수 있도록 하는 코드에 대한 용어)는 RTS 및 DTR을 활성화해야 하는지 여부를 정의하는 것처럼 보입니다. 그런 다음 코드는 jccs 라이브러리를 호출하여 RTS 및 CTS를 활성화하거나 비활성화합니다.
이 시점에서 ESP8266에서 RTS와 CTS에 연결된 라인을 분리했습니다. 다시 CuteCom을 사용하여 제가 업로드한 새 스케치와 대화할 수 있었습니다. 그러나 Arduino IDE에서 프로그래밍할 때마다 전선을 분리했다가 다시 연결하고 싶지 않습니다.
Arduino IDE의 "직렬 모니터"가 제대로 작동하므로 연결을 끊지 않고도 장치와 통신하는 것이 가능한 것 같습니다.
Ubuntu 14.04에서 RTS 및 DTR을 무시할 수 있는 직렬 터미널 에뮬레이터를 얻으려면 어떻게 해야 합니까? 또한 포트를 이 모드로 설정하여 socat
유사하게 사용할 수 있도록 하는 명령도 수락합니다.
중요하지 않을 수도 있지만 실제 장치의 사진은 다음과 같습니다.
답변1
picocom -b 115200 --lower-rts --lower-dtr /dev/ttyUSB0
ESP-C3-32S-Kit에 이 문제가 있습니다. 장치를 열면 재설정이 생성되지만 일반 부팅 모드에서는 직렬을 사용할 수 있습니다.