我想用 Arduino IDE 对 Stm32 bluepill 进行编程,但是当我想定义像我写的“pinMode(A10,OUTPUT)”这样的引脚时,它会出错。错误是“'A10'没有在这个范围内声明”我想知道我应该如何在 STM32 的 Arduino IDE 中声明引脚
3 回答
根据您报告的错误,您没有为正确的板构建代码。我怀疑您的目标是没有 A10 的 ArduinoUNO(默认)。
另外,正如hcheung的回答所提到的,蓝色药丸上的名字是“PA10”。
按照此处的说明安装 STM“蓝色药丸”的板配置,然后选择它并再次构建。
https://maker.pro/arduino/tutorial/how-to-program-the-stm32-blue-pill-with-arduino-ide
请注意,截至今天的板选择现在是“STM32F1 系列”,而不是链接中指定的“STM32F103C 系列”。
对于带有 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
一个原因可能是当前选择的电路板没有编号为 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。这是显示引脚名称及其功能的示例图片: