You need to enable JavaScript to run this app. ATtiny85连接EM18 RFID阅读器运行代码提示Serial未声明问题求助
优惠活动
大模型
产品
解决方案
定价
更多

ATtiny85连接EM18 RFID阅读器运行代码提示Serial未声明问题求助

问题解决方法

报错根因

ATtiny85没有内置硬件串口模块,Arduino ATtiny核心库默认未定义Serial对象,直接调用Serial相关方法就会触发该报错。你已经引入了SoftwareSerial软串口库,只需调整代码即可解决:

调整步骤

  1. 初始化软串口对象
    在引入SoftwareSerial.h的下一行添加软串口定义,自行指定ATtiny85上的收发引脚(示例中RX接PB2、TX接PB1,可根据自己的接线修改):
SoftwareSerial mySerial(2, 1); // 第一个参数为RX引脚号,第二个为TX引脚号
  1. 替换所有串口调用
    把代码中所有Serial关键字替换为你定义的软串口对象名mySerial,比如:
  • 原Serial.begin(9600)改为mySerial.begin(9600)
  • 原Serial.available()改为mySerial.available()
  • 所有打印、读串口的方法都同步替换即可
  1. 接线匹配
  • EM18 RFID模块的TX引脚接你设置的ATtiny85 RX引脚
  • 如果需要串口调试输出,将ATtiny85的TX引脚接USB转TTL模块的RX引脚,波特率统一设为9600

修改后完整可用代码

#include <SoftwareSerial.h>
// 自定义软串口,引脚可按需调整
SoftwareSerial mySerial(2, 1);

char tag1[12]={"123456789123"};
char tag2[12]={"123456789456"};
char var[12]={"000000000000"};
int ok;

void setup() {
  mySerial.begin(9600);
}

boolean comparetag(char aa[14], char bb[14])
{
  boolean ff = false;
  int fg = 0;
  for (int cc = 0 ; cc < 12 ; cc++)
  {
    if (aa[cc] == bb[cc])
    {
      fg++;
    }
  }
  if (fg == 12)
  {
    ff = true;
  }
  return ff;
}

void check()
{
  ok = 0;
  if (comparetag(var, tag1) == true)
  {
    ok++;
  }
  if (comparetag(var, tag2) == true)
  {
    ok++;
  }
}

void reading_data()
{   
  ok=-1;
  int k=0;
  char val;
  mySerial.println("entre the rfid id");
  while(!mySerial.available())
  {
    // 等待数据
  }
  if(mySerial.available()>0)
  {     
    for(int i=0;i<12;i++)
    {
      val=mySerial.read();
      mySerial.print(val);
      var[i]=val;
      while(!mySerial.available())
      {
        // 等待下一位数据
      }
    }
   check();
  }
  if (ok > 0)
  { 
    mySerial.println('\n');
    mySerial.println("Accepted");
    ok = -1;
  }
  else if (ok == 0)
  {
    mySerial.println('\n');
    mySerial.println("Rejected");
    ok = -1;
  }
}

void loop() {
  reading_data();
}

注意事项

  • 代码中使用的引脚号是Arduino ATtiny核心的映射编号,不是芯片物理引脚号,烧录前确认你使用的ATtiny核心的引脚对应规则
  • 不要选择已经被其他外设占用的引脚作为软串口收发引脚

内容的提问来源于stack exchange,提问作者Ajit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 12:15:02