- 设置Arduino IDE
- 设置STM8S103F3开发板以进行Arduino IDE编程
- 使用Arduino在STM8S103F3上的LED闪烁
- STM8S103F3的Arduino引脚映射
- 在Arduino IDE上编译SPL库
凭借其支持的用户社区,Arduino无疑已发展成为一种用户友好且快速的原型制作工具。如今,由于其开源特性,该平台不仅限于Arduino开发板,而且还可以通过Arduino IDE编程其他开发板,例如NodeMCU,ESP8266,STM32,MSP430等。如果您想知道如何操作,可以单击下面的链接。
- 使用Arduino IDE编程NodeMCU
- 使用Arduino IDE编程ESP8266
- 使用Arduino IDE编程STM32
- 使用Energeia编程MSP430(类似于Arduino)
毫无疑问,Arduino IDE非常适合初学者,但对于专业开发而言,与本机开发环境和编译器一起工作还是不错的。类似于用于PIC单片机的MPLABX和用于TI单片机的Code Composer工作室。使用本机平台使我们可以在寄存器级别(如果需要,甚至在汇编级别)上工作,从而使程序具有更高的内存效率。这就是为什么当我们开始STM8S微控制器教程时系列中,平台的选择是STVD和Cosmic C编译器,两者均可免费下载和使用。但是,令人遗憾的是,STVD是一个非常古老的IDE,使用它时感觉就像90年代。最重要的是,STVP编程器工具也没有很好地与IDE集成在一起,因此您必须单独使用它。这增加了编译和上载时间,并使开发和调试困难。
我一直在寻找替代品,那是在Arduino IDE进行救援时。 Michael Mayor的一个名为Sduino的工具使我们能够直接从Arduino IDE直接编程STM8s微控制器(大多数流行的微控制器),并且只需几分钟即可完成设置并开始使用。更有趣的是,除了支持Arduino风格的编程之外,Sduino还允许我们使用标准外设库(SPL),换句话说,我们几乎可以将STVD上的同一程序编译到Arduino IDE中。尽管Sduino是一个很酷的工具,但它仍在开发中,尚未支持许多Arduino库和功能。话虽如此,让我们学习如何将Arduino IDE与STM8S103F开发板一起使用。如果您不熟悉此板,请检查STM8S103F教程入门。除STM8S103F外,Sduino还支持其他STM8S微控制器,如STM8S003,STM8S105C,STM8S105K,STM8S,STM8S208MB,ESP14等。本教程中介绍的步骤对于所有对象都是相同的。
设置Arduino IDE
步骤1:如果您不熟悉Arduino环境,请根据您的操作系统下载Arduino并安装。
第2步:按照 文件->首选项 打开首选项窗口,并将下面给出的链接粘贴到其他面板管理URL文本框中,然后单击确定。
github.com/tenbaht/sduino/raw/master/package_sduino_stm8_index.json
步骤3:按照“ 工具”->“板”->“板管理器” 打开“板管理器”对话框并搜索“ sduino”。安装完成后,单击安装并关闭对话框。
步骤4:重新启动IDE,然后按照 Tools-> Board-> STM8S103F3进行操作 。如果您有其他开发板,则可以选择其他板。
现在,Arduino IDE已准备好对STM8S103F3开发板进行编程。让我们设置电路板,将其连接到计算机,然后为简单的LED闪烁编程。
设置STM8S103F3开发板以进行Arduino IDE编程
如下所示,将ST-Link V2与开发板连接。
连接非常简单,最好的部分是您不需要外部组件。我的编程硬件设置如下所示,我刚刚使用了母头连接线进行连接。但是,请注意,ST-Link的引脚排列可能与我的不同,在进行连接之前,请确保遵循设备上的引脚排列。
进行连接并将设备连接到计算机后,驱动程序安装将自动开始。您可以使用设备管理器来确保您的计算机是否正确发现了ST-LINK V2。如果这是第一次为评估板供电,您还将注意到评估板上的测试LED闪烁。
使用Arduino在STM8S103F3上的LED闪烁
现在,对于简单的LED闪烁,我们可以使用示例部分中的闪烁程序。遵循 File-> Example-> Generic_Example-> Basics-> Blink 。
车载指示灯闪烁的完整程序如下所示-
void setup(){//将数字引脚LED_BUILTIN初始化为输出。pinMode(LED_BUILTIN,输出); } //循环函数永远反复运行void loop(){digitalWrite(LED_BUILTIN,HIGH); //打开LED(HIGH是电压电平)delay(1000); //等待第二个digitalWrite(LED_BUILTIN,LOW); //通过使电压为LOW delay(1000)来关闭LED;//等待一秒钟}
如您所见,这与Arduino眨眼程序非常相似。要上传程序,请确保如上所述通过st-link v2连接了您的开发板,并如下图所示将编程器选择为“ ST-Link / V2”。
注意:与Arduino开发板不同,您无需选择正确的COM端口即可对开发板进行编程。您只能将COM端口用于串行通信。
选择COM端口后,上传代码也非常简单。只需按上载按钮(下面用红色圈起来),代码就会被编译并自动上传到我们的开发板上。
就是说,程序直接上传到板上,并且您应该看到板载LED闪烁。没有外部上传软件,什么也没有。就这么简单。您可以查看此页面底部的视频以进行工作。
STM8S103F3的Arduino引脚映射
如果要从此处开始,则需要知道如何寻址STM8S103F3开发板上的每个引脚。从下面的这张图可以了解引脚映射-
例如,从STM8S103F3电路板上的电路图中,我们知道板载LED已连接到PB5。要在Arduino上解决该引脚问题,我们必须使用3,因此程序可以编写为-
void setup(){//将数字引脚LED_BUILTIN初始化为输出。pinMode(3,输出); } //循环函数永远反复运行void loop(){digitalWrite(3,LOW); //打开LED(HIGH是电压电平)delay(1000); //等待第二个digitalWrite(3,HIGH); //通过使电压为LOW delay(1000)来关闭LED;//等待一秒钟}
在Arduino IDE上编译SPL库
如前所述,我们还可以在Arduino IDE上使用SPL库。如果您还记得的话,在我们之前的STM8S GPIO教程中,我们编写了一个代码,使用按钮使板上LED以及外部LED闪烁。只需很少修改的相同代码也可以在Arduino上编译。修改后的代码如下所示。
#定义Green_LED GPIOA,GPIO_PIN_3 void setup(){GPIO_DeInit(GPIOA); //准备端口A以使用GPIO_DeInit(GPIOB); //准备端口B正常工作//将PA2声明为输入上拉引脚GPIO_Init(GPIOA,GPIO_PIN_2,GPIO_MODE_IN_PU_IT); //将PA3声明为推挽输出引脚GPIO_Init(Green_LED,GPIO_MODE_OUT_PP_LOW_SLOW); //将PB5声明为推挽输出引脚GPIO_Init(GPIOB,GPIO_PIN_5,GPIO_MODE_OUT_PP_LOW_SLOW); } void loop(){if(GPIO_ReadInputPin(GPIOA,GPIO_PIN_2))//如果按下按钮GPIO_WriteLow(Green_LED); // LED亮,否则GPIO_WriteHigh(Green_LED); // LED熄灭GPIO_WriteReverse(GPIOB,GPIO_PIN_5);延误(100); }
如果您想开始使用STM8S进行开发,那么总结Arduino IDE和Sduino是一个很好的选择。但是,该平台仍在开发中,尚未支持许多Arduino库。不过,如果您希望深入研究并为发展做出贡献,那将是很棒的。但是,为了学习起见,我将继续使用STVD和cosmic C编译器的教程系列。