首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >STM32蓝丸和Arduino IDE

STM32蓝丸和Arduino IDE
EN

Stack Overflow用户
提问于 2020-09-03 03:26:06
回答 3查看 655关注 0票数 0

我想用Arduino IDE编写Stm32 bluepill,但是当我想定义像我写“pinMode(A10,OUTPUT)”这样的引脚时,它就会给出错误。错误是"'A10‘没有在这个作用域中声明“我想知道我应该如何在Arduino IDE for STM32中声明Pins

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-09-04 01:11:07

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

此外,正如hcheung的answer提到的那样,蓝色药片上的名字是"PA10“。

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

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

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

票数 0
EN

Stack Overflow用户

发布于 2020-09-03 03:29:56

一个原因可能是当前选定的板没有编号为10的模数转换器引脚(请检查tool ->板上的板),模数转换器引脚的数量可能较少,例如尝试A0。

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

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

代码语言:javascript
复制
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。以下是显示引脚名称及其功能的示例图片:

票数 0
EN

Stack Overflow用户

发布于 2020-09-03 20:19:24

对于带有Arduino Core的STM32蓝色药丸,数字引脚是根据其端口和引脚编号命名的,例如PB1、PA10。

没有A10,我假设你指的是PA10 (由于印刷电路板上的空间有限,它在蓝色药丸印刷电路板上标记为"A10“(用于端口A引脚10)。

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

代码语言:javascript
复制
pinMode(PA10, OUTPUT);

或者因为PA10在内部恰好被称为D10,所以您还可以使用:

代码语言:javascript
复制
pinMode(10, OUTPUT); //not recommended

为了更好地理解STM32F103蓝色药丸的所有引脚分配,请查看源代码herehere

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63712354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档