ESP8266(12e)의 전송 속도를 영구적으로 변경하는 방법은 무엇인가요?

중요: `AT+IPR=9600`을 사용하지 마세요! (업데이트 참조)

115,200 보드로 통신하는 ESP8266 12E 모듈이 있습니다. 이 모듈을 소프트웨어 시리얼이 있는 아두이노 나노와 함께 사용하면 상황이 지저분해집니다. 그래서 ESP 모듈의 전송 속도를 줄여야 한다는 것을 알았습니다.

그 방법에 대한 이 링크를 찾았습니다.

**궁금한 점이 있습니다.

  • 영구적인 변경 사항인가요, 아니면 모듈에 전원이 공급된 후 매번 이 작업을 수행해야 하나요?

  • 소프트 시리얼을 통해 아두이노에서 명령을 보내면 같은 결과를 얻을 수 있나요? 글쎄, 내가 시도한 이후로 나는 항상 AT+CIOBAUD=9600 또는 AT+IPR=9600에 오류가 발생하기 때문에 그렇지 않은 것 같습니다.

  • ESP8266의 최신 펌웨어 버전에서는 전송 속도가 기본적으로 9,600으로 설정되어 있다고 어딘가에서 읽었습니다. 누구든지 이것을 확인할 수 있으며 그렇다면이 최신 펌웨어를 플래시하는 것이 더 낫습니까?

모듈의 공급업체:

Ai-Thinker Technology Co.,Ltd.

현재 펌웨어 버전은 0.3.0인 것 같습니다. AT+GMR`을 보내면 받습니다:

sending AT+GMR

response: ?AT¥TJÕ¨H(Q�²•ÉÍ¥½¹é‚r¢‚r‚r‚BÕ��Â’‚ŠªŠ¢Ò¢ªÒªÂJm
 SDK versioo:0.3.0
 Ai�½½
 ‚Šj

전송 속도가 너무 높기 때문에 다시 약간의 쓰레기가 발생합니다.

모듈에 대한 기타 정보:

sending AT+RST
response: ?AT+RST
OK
WRT
"%M
<99CT
 ets Jan  8 2013,rst catse:2, boot lode:(3,7)
load 0x40100000ntail 4
chksum 0x89
ld tail 4
chm3 tail 8 r 0 aM
 ón't use rtc mem dat`
sl��oÌÿ
Ai-Thinker Technology Co.,Ltd.

업데이트

(*) FTDI232 모듈을 사용하여 AT+IPR=9600을 ESP8266-12E 모듈로 전송 하고 브릭했습니다!

ESP8266(-12E)에서 AT+IPR=9600을 사용하지 마세요!

지금까지 복구하지 못했습니다! 다시 플래시하려고했지만 유효하지 않은 헤드 예외가 발생합니다.

새 모듈에서 AT+CIOBAUD=9600 명령을 보냈더니 작동했습니다. 영구적으로!

내 모듈 사양:

AT+GMR 
AT version:0.40.0.0(Aug  8 2015 14:45:58)
SDK version:1.3.0
Ai-Thinker Technology Co.,Ltd.
Build:1.3.0.2 Sep 11 2015 11:48:04
OK 

사용 중인 칩의 AT 명령어 세트 인터프리터 최신 버전에 따라 시도한 두 가지 명령어가 유효한 명령어가 아닐 수 있으며, 이는 Espressif의 ESP8266 AT 명령어 세트 문서에 나열되어 있지 않을 수 있습니다. 현재 문서(버전 1.5.3)에서 또는 을 검색하면 결과가 반환되지 않습니다.

이제 전송 속도 명령은 각각 현재 세션 또는 현재 및 향후 세션에 대한 전체 UART를 구성하는 &#AT+UART_CUR## 및 &#AT+UART_DEF##입니다. 이 명령에 대한 매뉴얼의 프로토타입은 다음과 같습니다:

AT+UART_DEF=, , , , 
Example:
AT+UART_DEF=115200, 8, 1, 0, 3

제가 사용해본 결과 효과가 있음을 확인할 수 있었습니다.

소프트웨어 직렬을 사용하여 발견 한 것은 115200 보드를 장치에 명령을 보낼 수있을만큼 충분히 밀어 낼 수 있지만 (그것에 의존하는 응용 프로그램을 구축하지는 않지만) 최대 9600 보드까지만 안정적으로 읽을 수 있다는 것입니다. 소프트웨어 직렬을 통해 장치의 전송 속도를 115200에서 9600으로 변경할 수 있었지만, 가비지가 돌아올 것을 예상하고 무시하면 됩니다:

// Set ESP8266 baud rate to 9600. You only need to do this once per device
set software serial baud to 115200;
send "AT+UART_DEF=9600,8,1,0,0";
set software serial baud to 9600;
// From now on, communicate with your device at 9600 baud.
해설 (0)
해결책

FTDI232 모듈을 115200 전송 속도로 연결했고 이제 ESP8266 모듈의 사양을 읽을 수 있습니다:

AT+GMR 
AT version:0.40.0.0(Aug  8 2015 14:45:58)
SDK version:1.3.0
Ai-Thinker Technology Co.,Ltd.
Build:1.3.0.2 Sep 11 2015 11:48:04
OK 

그 후 AT+IPR=9600 명령을 보냈는데 처음에는 트릭을 수행하는 것처럼 보였습니다. 하지만 모듈을 재부팅한 후 모든 전송 속도에서 가비지 응답만 받았습니다.

ESP8266(12e) 모듈에 AT+IPR=9600을 보내지 마세요.

JRobert가 언급 한대로 AT + UART_DEF 명령이 작동 할 수도 있지만 AT + CIOBAUD = 9600 명령을 사용했고 작동했습니다. 영구적으로!

나는 이것이 다른 사람들에게 도움이되기를 바랍니다.

해설 (0)

전원 공급 장치에 문제가 있는 것 같습니다. 전원 공급 장치 정격은 얼마입니까? 그리고 vcc와 접지 사이에 작은 커패시터를 추가해 보세요. 또한 전송 속도 문제가 해결 된 펌웨어를 0.9로 업데이트하는 것이 좋습니다.

새 펌웨어는 다음 링크에서 찾을 수 있습니다. https://github.com/espressif/esp8266_at

해설 (2)