0

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

4

3 回答 3

0

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

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

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

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

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

于 2020-09-03T17:11:06.850 回答
0

对于带有 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 的所有引脚分配,请查看此处此处的源代码。

于 2020-09-03T12:19:23.590 回答
0

一个原因可能是当前选择的电路板没有编号为 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。这是显示引脚名称及其功能的示例图片: 在此处输入图像描述

于 2020-09-02T19:29:55.583 回答