起起落落落落落落落落…… 2022-01-24 12:07 采纳率: 100%
浏览 380
已结题

Arduino按键循环计数0到9并用数码管显示的代码怎么修改

问题遇到的现象和发生背景

编译提示分号和大括号有误,修改多次后问题没有解决

问题相关代码,请勿粘贴截图
int pushButton=2int beforeState=0;//检测上一次按下是否松开
int buttonState=0;//初始值为0
int presstime=0;//记录按了几次
int a=7;
int b=8;
int c=3;
int d=10;
int e=9;
int f=6;
int g=5;
int DP=4;
// 初始化
void setup() {
 // 初始化串口
 Serial.begin(9600); 
 // 把按键引脚设置为输入
 pinMode(pushButton, INPUT)//定义端口2为输入引脚.
 for(int i=3;i<11;i++)
 {pinMode(i,OUTPUT);}
  //把 LED 引脚设置为输出
 }
int numTable[10][8]=
{
  { 1,1,1,1,1,1,0,0},
  { 0,1,1,0,0,0,0,0},
  { 1,1,0,1,1,0,1,0},
  { 1,1,1,1,0,0,1,0},
  { 0,1,1,0,0,1,1,0},
  { 1,0,1,1,0,1,1,0},
  { 1,0,1,1,1,1,1,0},
  { 1,1,1,0,0,0,0,0},
  { 1,1,1,1,1,1,1,0},
  { 1,1,1,1,0,1,1,0},
};
void loop() 
{ int buttonState=digitalRead(pushButton);  
 if(buttonState==1&&beforeState==0)
 {
  presstime++;
 if(presstime==10)
 {presstime=0;}
 }
 digitalWrite(a,numTable[presstime][0]);
 digitalWrite(b,numTable[presstime][1]);
 digitalWrite(c,numTable[presstime][2]);
 digitalWrite(d,numTable[presstime][3]);
 digitalWrite(e,numTable[presstime][4]);
 digitalWrite(f,numTable[presstime][5]);
 digitalWrite(g,numTable[presstime][6]);
 digitalWrite(DP,numTable[presstime][7]);
 beforeState=buttonState;
 delay(1000);
}


运行结果及报错内容

无法运行,报错内容为“Expected ';' after top level declarator (fix available)”和“Expected‘}’to match this ‘}’”

我的解答思路和尝试过的方法

尝试过增减分号和大括号

我想要达到的结果

编译通过且能实现标题功能

  • 写回答

2条回答 默认 最新

  • qllaoda 2022-01-24 13:50
    关注

    不知道你用了什么编辑器,代码复制出来,在看起来是空格的地方有一些无法显示的字符,下面是去掉了那些字符的,应该没问题了

    int pushButton=2; 
    int beforeState=0;//检测上一次按下是否松开
    int buttonState=0;//初始值为0
    int presstime=0;//记录按了几次
    int a=7;
    int b=8;
    int c=3;
    int d=10;
    int e=9;
    int f=6;
    int g=5;
    int DP=4;
    // 初始化
    void setup() {
     // 初始化串口
     Serial.begin(9600); 
     // 把按键引脚设置为输入
     pinMode(pushButton, INPUT); //定义端口2为输入引脚.
     for(int i=3;i<11;i++)
     {pinMode(i,OUTPUT);}
      //把 LED 引脚设置为输出
     }
    int numTable[10][8]=
    {
      { 1,1,1,1,1,1,0,0},
      { 0,1,1,0,0,0,0,0},
      { 1,1,0,1,1,0,1,0},
      { 1,1,1,1,0,0,1,0},
      { 0,1,1,0,0,1,1,0},
      { 1,0,1,1,0,1,1,0},
      { 1,0,1,1,1,1,1,0},
      { 1,1,1,0,0,0,0,0},
      { 1,1,1,1,1,1,1,0},
      { 1,1,1,1,0,1,1,0},
    };
    void loop() 
    { int buttonState=digitalRead(pushButton);  
     if(buttonState==1&&beforeState==0)
     {
      presstime++;
     if(presstime==10)
     {presstime=0;}
     }
     digitalWrite(a,numTable[presstime][0]);
     digitalWrite(b,numTable[presstime][1]);
     digitalWrite(c,numTable[presstime][2]);
     digitalWrite(d,numTable[presstime][3]);
     digitalWrite(e,numTable[presstime][4]);
     digitalWrite(f,numTable[presstime][5]);
     digitalWrite(g,numTable[presstime][6]);
     digitalWrite(DP,numTable[presstime][7]);
     beforeState=buttonState;
     delay(1000);
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月1日
  • 已采纳回答 1月24日
  • 创建了问题 1月24日

悬赏问题

  • ¥15 求高通平台Softsim调试经验
  • ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?
  • ¥15 wpf ScrollViewer实现冻结左侧宽度w范围内的视图
  • ¥15 栅极驱动低侧烧毁MOSFET
  • ¥30 写segy数据时出错3
  • ¥100 linux下qt运行QCefView demo报错
  • ¥50 F1C100S下的红外解码IR_RX驱动问题
  • ¥20 基于matlab的航迹融合 航迹关联 航迹插补
  • ¥15 用Matlab实现图中的光线追迹
  • ¥15 联想笔记本开机出现系统更新界面