本系列教程将向大家讲述,在自己的计算机上构建完善的嵌入式系统开发环境的方法。
本文将向大家讲述构建PlatformIO开发环境的方法。
PlatformIO简介:
PlatformIO 是开源的物联网开发生态系统。提供跨平台的代码构建器、集成开发环境(IDE),兼容 Arduino,ESP8266和mbed等。支持在Windows、Linux、macOS上使用预编译好的工具链,调试器和框架进行开发。它支持超过 350 个的嵌入式设备,超过 20 个的开发平台,超过 10 个的框架 。
一、安装步骤
1、启动VS Code,选择扩展,然后查找PlatformIO,然后安装PlatformIO IDE。
2、PlatformIO IDE的安装时间较长,我们对VS Code左下角的提示信息进行查看即可。
3、在VS Code的输出窗口,有具体安装内容,我们可以参照整个安装过程。
4、PlatformIO安装完毕后,会要求重启VS Code,我们点击Reload Now按钮即可。
二、PlatformIO的配置
PlatformIO的整个配置过程均需Internet连接,而且联网速度较慢,需反复连接。
1、安装Atmel AVR平台,选择Platform,选择Atmel AVR安装即可。
2、安装STM32平台,选择Platform,选择ST STM32安装即可。
三、基本使用方法
以STM32F091RCT6为例,讲述PlatformIO的基本使用方法。
1、New Project
2、进行如下设置。
3、生成过程,要求联网Internet,需等待一段时间。
4、下图是生成后的文件结构。
5、在src目录下,建立main.c和main.h 2个文件。
6、main.h的程序如下:
#ifndef MAIN_H
#define MAIN_H
#include "stm32f0xx_hal.h"
#define LED_PIN GPIO_PIN_12
#define LED_GPIO_PORT GPIOB
#define LED_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
#endif // MAIN_H
7、main.c的程序如下:
#include "main.h"
#include "stm32f0xx_hal.h"
void LED_Init();
int main(void) {
HAL_Init();
LED_Init();
while (1)
{
HAL_GPIO_TogglePin(LED_GPIO_PORT, LED_PIN);
HAL_Delay(1000);
}
}
void LED_Init() {
LED_GPIO_CLK_ENABLE();
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin = LED_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct);
}
void SysTick_Handler(void) {
HAL_IncTick();
}
8、然后进行编译,在编译的过程中会有警告出现,可参照https://blog.csdn.net/qingwufeiyang12346/category_6022337.html里面讲述的方法加以解决。
7、点击下载按钮,将程序下载到开发板。如无意外,可看到线路板的指示灯以1000ms为间隔进行闪烁。