如何让Arduino IDE支持你手里的STM32 nucleo开发板
Arduino IDE开发环境在默认情况下不支持STM32 NUCLEO开发板,只有通过添加附加开发板管理包才能使用。目前为止,只有一部分板子支持使用Arduino IDE开发环境进行开发,分别是
Nucleo F207ZG,
Nucleo F429ZI,
Nucleo F030R8,
Nucleo F091RC,
Nucleo F103RB,
Nucleo F303RE,
Nucleo F401RE,
Nucleo F411RE,
Nucleo L053R8,
Nucleo L152RE,
Nucleo L432KC,
STM32F100RB-DISCVL,
STM32F407G-DISC,
STM32F746G-DISCOVERY
那么当你的手里有以上列表中的某个板子的话,怎么样才能让你的板子支持使用Arduino IDE开发环境去开发呢?
打开Arduino IDE软件。
单击文件->首选项,弹出首选项对话框。然后在附加开发板管理器网址输入以下网址:https://github.com/stm32duino/Bo ... kage_stm_index.json。单击好,完成设置。如下所示:
在开发板管理器添加NUCLEO-L476RG的支持包。单击工具->开发板管理器。在类型下拉菜单中选择“贡献”,然后在筛选出的结果中找到STM32L4xx Cores by STMicroelectronics。单击安装。由于文件较大,等待时间会长一些。安装完成后。单击关闭。
到此,就可以在Arduino IDE开发环境使用STM32 NUCLEO开发板了。
接下来,我们将编写一段读取按钮状态的代码,然后将编译的结果下载到NUCLEO-L476中。代码参考官方的Digital InPut例程。
首先,选择使用的开发板型号。单击工具->开发板,选择NUCLEO-L476RG。
单击工具->端口,选择ST-LINK虚拟的串口端口号。
现在可以编写代码了。单击文件->新建,在窗口中输入以下代码:
// Read InPut PIN and send the result over USB-Virtual COM
int pushButton = 2;
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
// make the pushbutton's pin an input:
pinMode(pushButton, INPUT);
}
void loop() {
// read the input pin:
int buttonState = digitalRead(pushButton);
// print out the state of the button:
Serial.println(buttonState);
delay(1); // delay in between reads for stability
}
下图是NUCLEO-L476RG与按钮的连接原理图。
当按下按钮时,串口监视器收到数据0;释放按钮时,串口监视器收到1。