woshi_ziyu
发表于: 2020-7-2 21:37:11 | 显示全部楼层

STM8是意法半导体(STMicroelectronics)公司8位微控制器产品线的一个系列,已成为低成本产品开发的微控制器的常用选择。我以前使用过AVR、PIC和其他一些ARM Cortex微控制器,但是可以肯定的是,在某些应用中,它们会大大增加BOM成本。最近,在拆解了一些产品之后,我发现其中大多数都装有STM8微控制器。该IC不仅价格便宜,而且具有许多功能和选件,使其适合在许多不同的应用中使用。例如,STM8S系列控制器是通用控制器,但还有其他系列,例如用于汽车设计的STM8A系列和用于低功耗电池供电设计的STM8L系列,扩展了这些控制器的应用范围。


在本系列教程中,我们将学习如何对STM8S微控制器(尤其是STM8S103F3P6)进行编程。它价格低廉,仅为0.25美元,其内部带有16Mhz内部振荡器、8kB闪存、10位ADC、UART、SPI和I2C。TM8S103F3P6受到广泛欢迎,我们将学习如何从基本的闪烁到各种显示和传感器接口对该控制器进行编程。


选择硬件和软件开发工具

既然我们已经决定使用这款微控制器,那么我们将必须选择硬件和软件开发工具来开始我们的学习过程。有很多方案,在这里,我选择了可​​以免费使用且所有人都可以轻松使用的方案。


STM8S103F3P6开发板

ST的8位微控制器的官方开发板称为STM8 Discovery套件,但是我们将使用另一个低成本的开发板,您可以从本地供应商或在线商店中轻松找到该开发板。下图显示了我们将在本文中使用的STM8S103F3P6开发板。

STM8S103F3P6-Development-Board.png


该开发板仅包含开始开发所需的最少组件。它是面包板友好型产品,适合紧凑型应用。开发板的内部电路图如下所示。

STM8S103F3P6-Board-Circuit-Diagram.png


仔细观察,您会发现,除了STM8S103F3p6控制器外,我们还有一个复位按钮。电源线和测试线连接到PB5(端口B引脚5)和AMS1117稳压器,该稳压器将5V从USB端口转换为控制器的3.3V。如果需要,还可以使控制器在5V电压下工作。我们还有4个编程器引脚,分别是3.3V、GND、SWIM和NRST,可用于轻松编程和调试我们的微控制器。

STM8S103F3P6-Pinout.jpg


STM8S103F3P6编程器

为了对控制器进行编程,我们将使用价格便宜且易于在线购买的ST-LINK v2。 ST-LINK v2板有多种克隆版,您可以使用任何类型的ST-LINK编程器,其引脚排列会有所不同,因此只需确保正确阅读外壳上的引脚排列即可。 ST官方本身也提供ST-LINK V3,可用于进行一些调试。

ST-LINK-V2-Board.jpg


STM8S103F3P6的开发IDE和编译器

有很多开发STM8S103F3P6可以使用的IDE和编译器,下图显示了STM8微控制器可用的官方工具。

STM8S103F3P6-IDE-and-Compiler.png


在配置方面,我们有STM8CubeMx,我试用了该软件。与STM32Cube不同,STM8Cube无法自动生成代码。它只能生成用于可视化目的的引脚映射,如果要将代码从一个控制器移植到另一个控制器,它可能会派上用场。除此之外,我不会使用它。


对于IDE和编译器,我们有很多选项可供选择。 IDE的前两个选项是IAR和ST Visual Develop(STVD),这两个软件都感觉像它们都是90年代起的,但是经过一段时间的使用,我发现STVD是一个不错的选择,因为它是完全免费的。同样,对于编译器,我们将使用Cosmic C编译器,因为它完全免费。一旦我们熟悉了环境,就应该很容易地使用ST的其他8位微控制器,而无需付出太多努力。本文后面将介绍如何使用Cosmic C编译器安装和设置STVD。


对于烧录程序,我们将使用ST Visual Programmer(STVP),该工具将在安装STVD时自动安装。它将集成在IDE本身中,有助于我们快速进行编程和调试。最终软件将是STMStudio,它是STM8监视软件。该软件可以帮助STM8进行实时调试,并具有一些很酷的功能,例如监视变量值、绘制图形等。


STM8S标准外围设备库:ST Microelectronics提供了一组库,使STM8S微控制器的代码开发更加轻松,该库简称为“标准外围设备库”或SPL。该库很酷,除了它的编写要牢记STM8S / A 8位系列中所有可能的控制器,而不仅仅是我们将要使用的STM8S103F3P6控制器。因此,我们必须在此处和此处进行一些调整才能使其正常工作。


如果不想使用该库,则必须直接访问控制器的寄存器或进行裸机装配编程。如果您有时间学习和使用它,那么两者都是很有趣的。我的想法是在运行良好的地方使用SPL库,然后根据需要在寄存器级和汇编级上工作。


使用Sduino实现Arduino开发STM8S

Arduino IDE也支持STM8S,可以使用Sduino从Arduino IDE直接对同一块STM8S103F3P6开发板进行编程。但是,该项目仍处于开发阶段,可能需要一些时间和社区支持才能为Sduino提供完整的平台支持。


下载所需的软件

现在我们已经决定要在本文中使用的软件,让我们继续使用下面的链接下载它们。所有软件均可免费下载和使用,如果您尚未注册,则只需在ST和Cosmic上注册一个免费帐户即可。

●    ST Visual Develop(STVD)

●    Cosmic C C编译器

●    标准外设库SPL

●    STM8Cube Mx(可选)

●    用于STM8的STMStudio(可选)


设置STVD和Cosmic C编译器

在下载了两个软件之后,只需按照屏幕上的说明进行安装。我建议将它们保留在默认目录中,以避免以后造成混乱。 可以轻松地安装STVD IDE。对于Cosmic C编译器,您必须在安装过程中获得免费的许可证密钥。您只需提供带有E-mail ID的公司信息,如果您是学生,只需提一下。许可证密钥的获取过程是即时且自动的,尽管设置说明可能需要一两天的时间,但提交后,我会在我的电子邮件ID上自动收到许可证密钥,请确保您检查垃圾邮件。我的确认电子邮件如下所示。

Cosmic-C-Compiler.png


按照电子邮件说明,只需复制license.lic文件并粘贴到安装文件夹中的“ license”子文件夹中即可。我们使用的路径是“C:\Program Files (x86)\COSMIC\FSE_Compilers\CXSTM8\License”。只需将文件粘贴到如下所示的位置即可。

Cosmic-C-Compiler-License.png


STM8S103F3P6的标准外设库

如前所述,意法半导体提供了称为SPL的库,该库可用于所有8位STM8S / A微控制器。您可以从ST Microelectronics下载原始SPL并进行所需的更改


创建第一个程序

现在一切准备就绪,让我们尝试编译第一个程序,以检查IDE、编译器和库是否都按预期方式工作。


首先打开STVD,然后选择File-> WorkSpace,在弹出窗口中,选择“ New Workspace”,然后输入项目名称和保存程序的路径。将程序命名为BareMinimum,并将其保存在桌面上的文件夹中。单击“OK”,然后会弹出 New Project对话框,如下所示。

Compiling-IDE.jpg

在toolchain root选项中,我们必须将目录指定为STM8 Cosmic编译器的安装路径。默认路径地址为"C:\Program Files (x86)\COSMIC\FSE_Compilers\CXSTM8”。之后,单击OK,然后弹出“MCU Selection”窗口。

STM8S103F3P6-Programming.jpg


搜索STM8S103F3P并选择,然后单击“OK”。这将在STVD上为STM8S103F3P打开一个新项目,完成后窗口应如下所示。

Programming-STM8S103F3P6.png

右键单击“source file”,然后选择“Add files to folder”包含SPL库的所有c文件,类似地,右键单击Include files以包含所有头文件。添加完所有文件后,单击Build-> rebuild all,然后单击Compile检查编译器和SPL是否按预期工作。如果一切顺利,您应该看到以下界面,显示构建结果0错误和0警告。

STM8S103F3P6-Programming.png


完成此操作后,现在我们可以确定我们所有的SPL库都可以与Cosmic编译器和STVD一起使用。这是我们对每个新项目都会遵循的标准程序。如果需要,还可以仅包含项目所需的必要头文件和源文件,以减少构建时间。


使用ST-Link V2将代码从STVD上传到STM8S开发板

如下所示,将ST-Link V2与开发板连接。

Coding-STM8S-Development-board-using-ST-Link-V2.png


连接非常简单。编程硬件设置如下所示,请注意,ST-Link的引脚排列可能与我的不同,在进行连接之前,请确保遵循设备上的引脚排列。

STM8S-Development-board-with-ST-Link-V2.jpg


进行连接并将设备连接到计算机后,驱动程序安装将自动开始。您可以使用设备管理器来确保您的计算机是否正确发现了ST-LINK V2。如果这是第一次为开发板供电,您还将注意到开发板上的测试LED闪烁。在STVD上成功编译代码后,我们将在项目文件夹的调试目录下获得“ S19”扩展文件。我的S19文件如下所示。

STVD-S19-Extention-file.png


此S19类似于应上载到控制器的十六进制文件。要上传程序,请打开应与STVD一起安装的ST Visual Programmer(STVP)。然后在配置窗口中,如下图所示进行选择,然后单击“确定”。

STM8S-Development-Board-Configuration.png


然后单击File-> Open并导航到我们之前显示的S19文件。然后,要烧写设备,请选择Program -> Current Tab。如果闪烁成功,您应该看到以下输出。

STVD-Code-Output.png


默认情况下,当您购买STM8S时,它自带有一个blin程序使测试LED闪烁。现在,在上传此空白代码之后,LED将不再闪烁。


在本文中,我们学习了硬件的基础知识,设置了开发环境,并学习了如何编译和上传代码。现在,我们已经准备好深入了解STM8S微控制器。如果您有任何疑问,请在论坛上发布,敬请期待!


跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 12 | 回复: 16



手机版|

GMT+8, 2024-3-30 00:02 , Processed in 0.116180 second(s), 7 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表