ATTiny串行通信无法在ESP8266NodeMCU V3的3.3V电压下工作

问题描述

我正在将数据从ATTiny85传输到ESP8266(NodeMCU v3)。我正在使用USB电缆为NodeMCU供电。 当我使用5V给ATTiny供电时,它工作正常。

但是我计划将我的项目转移到5V耐压的ESP32中。因此,我必须在3.3V下运行ATTiny(根据数据表,这是可能的)。但是,当我为ATTiny85使用3.3V电源时,没有得到预期的结果。我胡说八道。使用电平转换器是一种选择,但我想知道自己做错了什么。

为澄清起见,我所做的唯一更改是使用3.3V(而不是5V)为ATTiny供电。

我准备了以下演示来演示我的情况。在此先感谢:)

我正在使用Ardiono 1.8.10

NodeMCU核心:2.7.4

ATTiny85使用8MHz内部振荡器运行。

NodeMCU代码

char rx;
void setup()  
{
  Serial.begin(57600);
}
 
void loop() 
{
  if (Serial.available()){
    rx=Serial.read();
    Serial.print(rx);
    }
}

ATTiny85代码

#include "SoftwareSerial.h"

SoftwareSerial Monitor(5,4);

uint8_t x=0; //temp
uint8_t y=128; // ECG
void setup() {
  Monitor.begin(57600);
}

void loop() {
  Monitor.print("E"+String(int(y)));
  Monitor.print("T"+String(int(x)));
  x=x+1;
  y=y-1;
  delay(10);
}

当ATTiny从Arduino UNO以5V运行时,串行监控od NodeMCU

T95E32T96E31T97E30T98E29T99E28T100E27T101E26T102E25T103E24T104 Screen-Shot 1

当ATTiny从Arduino UNO以3.3V运行时,串行监控od NodeMCU

⸮qxt⸮q99⸮qx5⸮q9x⸮qx6⸮q97⸮qx7⸮q96⸮qxx⸮q95⸮qx9⸮q9t⸮q9`⸮q93⸮q9q⸮q9r⸮q9r⸮q9q⸮q93 Screen-Shot 2

当ATiny从ESP8266以3.3V运行时,串行监控od NodeMCU

3x⸮rtv⸮q37⸮rt7⸮qsv⸮rtx⸮qsu⸮rty⸮q3t⸮r5`⸮q3s⸮r5q⸮q3r⸮rur⸮q3q⸮r5s⸮q3`⸮r5t Screen-Shot 3

解决方法

当您使用3.3V供电时,ATTiny85似乎必须以38400bps的速度运行SoftwareSerial。

但是用5V供电时,它可以在57600bps上正常工作。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...