ZBLOG

In file included from C:\Users\Yuluoqiao\AppData\Local\Temp\arduino\sketches\93D9EAFD2BE7BF3BBF8FE98AB5C0B5F4\sketch\CAR007.ino.cpp:1:0: C:\Users\Yuluoqiao\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores\arduino/Arduino.h:135:6: ...

根据您提供的错误信息,问题涉及到 digitalWrite 函数的使用。通常,编译器会在出现参数类型或数量不匹配时发出警告或错误。以下是一些可能导致该问题的原因和解决方案:

常见原因

  1. 参数类型不匹配digitalWrite 函数需要两个参数:一个是引脚号(uint8_t pin),另一个是要写入引脚的值(uint8_t val)。确保您传递给它的参数是正确类型。
   // 示例:确保引脚号和状态都是有效值
   digitalWrite(LED_BUILTIN, HIGH);  // LED_BUILTIN 是一个常量,HIGH 是有效状态
  1. 引脚号超出范围: 确保您指定的引脚号在可用范围内。例如,对于 Arduino Uno,使用0到13之间的数字。如果您尝试使用不存在的引脚号,将会产生错误。

  2. 未初始化引脚: 在调用 digitalWrite 之前,请确保已经通过 pinMode() 初始化了该引脚为 OUTPUT 模式,否则函数可能无法正常工作。

   void setup() {
       pinMode(LED_BUILTIN, OUTPUT);  // 初始化引脚为输出模式
   }
   
   void loop() {
       digitalWrite(LED_BUILTIN, HIGH); 
       delay(1000);
       digitalWrite(LED_BUILTIN, LOW);
       delay(1000);
   }
  1. 函数重定义或冲突: 如果您在代码中自定义了一个名为 digitalWrite 的函数,这将与 Arduino 库中的相应函数发生冲突。请检查您的代码以确认没有重定义此函数。

示例修正

如果您的代码如下所示,并且出现了上述错误:

void setup() {
    // 未初始化就使用 digitalWrite,会导致问题
    digitalWrite(13, HIGH);  // 错误:未调用 pinMode()
}

void loop() {
    // ...
}

修改后应如下:

void setup() {
    pinMode(13, OUTPUT);      // 确保将13号引脚设置为输出模式
}

void loop() {
    digitalWrite(13, HIGH);  
    delay(1000);
    digitalWrite(13, LOW);
    delay(1000);
}

总结

  • 检查 digitalWrite 参数类型和数量是否正确。
  • 确保指定的引脚已通过 pinMode() 正确初始化。
  • 避免命名冲突,不要重新定义库中已有名称的函数。

如需更多帮助,请分享相关代码段,以便更具体地指导解决方案。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=19265

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?