本文介绍使用PlatformIO进行MCU开发的方法,期待应用PlatformIO建立层次化、大一统的MCU开发平台,本系列文章将系统阐述其开发环境的使用方法,并期待构建基于Arduino的C++嵌入式开发平台。
MCU:ATmega168PA
系统平台:Arduino
github:https://github.com/snmplink/StarrySky
一、开发步骤
1、在VS Code中安装PlatformIO。
2、安装Atmel AVR平台。
3、新建工程。
4、建立ATmega168PA工程,基于Arduino平台。
5、在main.cpp中加入程序。
#include <Arduino.h>
void setup()
{
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop()
{
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(100); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(100); // wait for a second
}
6、对程序进行编译。
7、使用PROGISP进行程序下载,HEX的位置如下:
8、程序下载界面设置。
9、观察程序运行结果。
二、注释
1、pinMode函数
pinMode是引脚状态设置函数,函数原型如下:
pinMode(pin, mode)
pin:Arduino板的引脚,一定要记住是Arduino板的引脚,而非ATmega168PA的引脚。
mode:INPUT, OUTPUT, or INPUT_PULLUP,分别为输入、输出和上拉输入。
2、digitalWrite函数
digitalWrite是引脚输出函数,函数原型如下:
digitalWrite(pin, value)
pin:Arduino板的引脚,一定要记住是Arduino板的引脚,而非ATmega168PA的引脚。
value:HIGH or LOW,分别为高电平和低电平。
3、delay函数
delay是延时函数,函数原型如下:
delay(ms)
ms:延时时间,单位ms。
四、问题
这些问题仅为当前对于Arduino和PlatformIO的认知水平,如有不到之处,期待指正。
1、引脚为Arduino板的引脚,不利于基于单片机层次的开发。
2、虽为C++设计,但例程未体现面向对象的程序设计思想。