【问题标题】:STM32 Blue pill and Arduino IDESTM32 蓝色药丸和 Arduino IDE
【发布时间】:2020-09-02 19:26:05
【问题描述】:

我想用 Arduino IDE 对 Stm32 bluepill 进行编程,但是当我想定义引脚时,就像我写的“pinMode(A10, OUTPUT)”一样,它给出了错误。错误是“'A10' 未在此范围内声明” 我想知道我应该如何在 STM32 的 Arduino IDE 中声明引脚

【问题讨论】:

  • 听起来像是语法错误。发布你的整个草图或查看它周围的代码。
  • void setup() { pinMode(A10, OUTPUT); } 无效循环() { 数字写入(A10,高);延迟(1000);数字写入(A10,低);延迟(1000);是的,我认为这是语法,但我不知道如何声明引脚,代码就是这样
  • 这段代码我编译成功了,可能是你的配置有问题。
  • 代码没有语法错误。你选对板了吗?您需要完成加载 STM 文件的过程,以便选择合适的板。 Arduino Uno(默认)没有 A10。
  • 当人们 1) 粘贴他们不理解的代码和 2) 不阅读他们零件的数据表时会发生这种情况。

标签: arduino stm32 bluepill


【解决方案1】:

根据您报告的错误,您没有为正确的板构建代码。我怀疑您的目标是没有 A10 的 ArduinoUNO(默认)。

另外,正如hcheung 的answer 提到的,蓝色药丸上的名字是“PA10”。

按照此处的说明安装 STM“蓝色药丸”的板配置,然后选择它并重新构建。

https://maker.pro/arduino/tutorial/how-to-program-the-stm32-blue-pill-with-arduino-ide

注意,截至今天的板选择现在是“STM32F1 系列”,而不是链接中指定的“STM32F103C 系列”。

【讨论】:

    【解决方案2】:

    一个原因可能是当前选择的电路板没有编号为 10 的 ADC 引脚(检查工具板上的电路板 -> 电路板),ADC 引脚的数量可能较少,例如试试 A0。

    或者您可能选择了错误的板。默认情况下,Bluepill 不包含在 Arduino IDE 中。所以你必须先把它添加到你的IDE中。 这里有一个很好的说明如何做到这一点和一个示例代码。 https://maker.pro/arduino/tutorial/how-to-program-the-stm32-blue-pill-with-arduino-ide

    请记住,与标准 Arduino 代码相比,这个新安装的库在语法上可能存在细微差异,例如取自上述网站的示例:

    void setup() {
      // change pin PC13
      pinMode(PC13, OUTPUT);
    }
    
    //infinite loop 
    void loop() {
      digitalWrite(PC13, HIGH);   // turn the LED on (HIGH is the voltage level)
      delay(1000);              // wait for a second
      digitalWrite(PC13, LOW);    // turn the LED off by making the voltage LOW
      delay(1000);              // wait for a second
    }
    

    正如您在此处看到的,引脚是使用“PC13”选择的,而不仅仅是一个数字,即“13”。

    因此,在这种情况下,通过安装上述站点中使用的库,您应该将 PA0 写入 PA7 以使用 ADC。 这是显示引脚名称及其功能的示例图片:

    【讨论】:

    • 谢谢你的回答,我试过了,同样的错误出现了
    • 非常感谢,您发送的图片非常有用
    【解决方案3】:

    对于带有 Arduino Core 的 STM32 Blue Pill,数字管脚根据其端口和管脚编号命名,例如 PB1、PA10。

    没有 A10,我假设您的意思是 PA10(由于 PCB 上的空间限制,在 Blue Pill PCB 上标记为“A10”(用于端口 A 引脚 10)。

    要将其用作数字引脚,只需使用PA10对其进行寻址,即:

    pinMode(PA10, OUTPUT);
    

    或者因为PA10内部恰好被称为D10,你也可以使用:

    pinMode(10, OUTPUT); //not recommended
    

    为了更好地理解STM32F103 Blue Pill的所有管脚分配,请查看源代码herehere

    【讨论】:

    • 成功了,您的评论非常有用,谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多