esp8266将波特率改为9600,流控使能了,怎么没法通信了 at+uart

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了esp8266将波特率改为9600,流控使能了,怎么没法通信了 at+uart相关的知识,希望对你有一定的参考价值。

参考技术A 如果你仔细研究USART_Init()函数,你会发现,这程序在配置波特率时会读取RCC有关的寄存器来计算当前CPU实际的工作频率是多少,然后计算参数来实现你需要的波特率——就是说不管你把单片机设置为什么样的工作频率,这函数都能让串口以你要求的波特率工作。

当然如果你把原来8M的晶振换掉了,那你就需要修改系统中的一个定义:在文件stm32f10x.h中的定义HSE_Value,这参数定义了单片机使用外部晶振或时钟源的频率,一般就是8000000,即使用的8MHz晶振。如果你的STM32用了什么7.3728、11.0592或者25MHz晶振时,你就要修改HSE_Value定义的值,这样保证串口通信波特率正确。

ESP32/ESP8266自动下载电路波形,ESP32/ESP8266不能UART流控自动下载的解决方法

  ESP32/ESP8266自动下载电路原理解析瞧这里:ESP8266/ESP32自动下载电路原理分析

  其中 EN引脚上的RC电路必不可少,如取值不当会导致不能实现自动下载。

  经常听人说有ESP32 UART自动下载不可用,而换了上电自复位电容就正常了的情况。今天看下实际波形。

  手头有一个ESP32电路,其 R=10K,C=10uF,自动下载时的波形如下。

黄 - EN
蓝 - BOOT(GPIO0)

  波形不好看,但能够实现自动下载功能。


  查了ESP32的技术规格书,esp32_datasheet_cn

  按照手册的说法,高电平最小值为VDD的0.75倍。VDD为3.3V时,高电平最小阈值为 2.475V。

  上图选取的触发电平为 1.2V,之后BOOT脚均为高电平,按道理其不具备自动下载的条件,但实际可行。兴许是EN的电平阈值与数字IO的不同,没准比1.2V还要低一些。


  参照官方原理图,改为 R=10K,C=1uF。再次观察。
黄 - EN
蓝 - BOOT(GPIO0)

  一切正常,与原理假想的相符。如果再遇到ESP32/ESP8266不能自动下载,这回知道该怎么做了吧。

以上是关于esp8266将波特率改为9600,流控使能了,怎么没法通信了 at+uart的主要内容,如果未能解决你的问题,请参考以下文章

ESP8266

esp8266的at指令只能设置一次吗

ESP32/ESP8266自动下载电路波形,ESP32/ESP8266不能UART流控自动下载的解决方法

ESP32/ESP8266自动下载电路波形,ESP32/ESP8266不能UART流控自动下载的解决方法

ESP32/ESP8266自动下载电路波形,ESP32/ESP8266不能UART流控自动下载的解决方法

ESP8266系统复位时串口输出乱码解答