STM8是STMicroelectronics的一系列8位微控制器,已成为成本敏感型产品开发微控制器的常见选择。该IC不仅价格便宜,而且还包含许多功能和选项,使其适用于许多不同的应用。例如,STM8S系列控制器(我们将在本教程系列中学习)是通用控制器,但还有其他系列,例如用于汽车设计的STM8A和用于低功耗电池供电设计的STM8L,它们扩展了这些控制器的应用。
在本系列教程中,我们将学习如何对STM8S微控制器,更具体地说是STM8S103F3P6进行编程。开始使用这个特定部件号的原因仅仅是因为它的性价比因素。喜欢!!只需0.25美元(约20卢比),我们就可以得到一个8位微控制器,带有16Mhz内部振荡器、8kB闪存、10位ADC、UART、SPI和I2C。谁不感兴趣?此外,STM8S103F3P6广受欢迎,因此作为初学者,如果您需要教程之外的帮助,您将获得足够的支持。
选择硬件和软件开发工具
现在我们已经确定了微控制器,我们将不得不选择硬件和软件开发工具来开始我们的学习过程。有很多选择,这里我选择了可以免费使用且易于所有人使用的选项。
STM8S103F3P6开发
ST 8 位微控制器的官方开发板称为 STM8 Discovery 套件,但我们将使用另一种低成本开发板,您可以从当地供应商或在线商店轻松找到。我们将在本教程中使用的STM8S103F3P6 开发板的图像 如下所示。
该板仅包含开始开发所需的最少组件。它对面包板友好,适用于紧凑型应用。开发板的内部电路图如下所示。
仔细看,您会注意到,除了 STM8S103F3p6 控制器之外,我们还有一个复位按钮来复位控制器。一个电源 LED 和一个测试 LED 连接到 PB5(端口 B 引脚 5)和一个 AMS1117 稳压器,将 USB 端口的 5V 转换为控制器的 3.3V。如果需要,也可以使控制器在 5V 上运行。控制器上的不同部件如下所示。我们还有 4 个编程器引脚,即 3.3V、GND、SWIM 和 NRST,可用于轻松编程和调试我们的微控制器。
STM8S103F3P6 编程器
为了对我们的控制器进行编程,我们将使用 便宜且易于在线获得的ST-LINK v2 。此 ST-LINK v2 板有许多变体(金属、塑料、金色、粉红色、裸板),并且都具有相同的用途。我的如下所示,但您可以使用任何类型的 ST-LINK 编程器,引脚排列会有所不同,因此请确保您正确读取外壳上的引脚排列。ST-Microelectronics 本身也有 ST-LINK V3,可用于一些严重的调试。我们暂时不会使用它,因为它有点贵,我们会为将来保存它。
STM8S103F3P6 IDE和编译器
为 STM8S103F3P6 选择正确的 IDE 和编译器令人费解,因为有很多选项可供选择。可用于 STM8 微控制器的官方工具如下图所示。
在配置方面,我们有 STM8CubeMx,我尝试了该软件,这让我完全失望。与 STM32Cube 不同, STM8Cube 不能自动生成代码。它只能为可视化目的生成引脚映射,如果您将代码从一个控制器移植到另一个控制器,它可能会派上用场。除此之外,我不会使用它。所以在本教程系列中,我们不会使用它。
对于 IDE 和编译器,我们有很多选项可供选择。IDE 的前两个选项是 IAR workbench 和 ST Visual Develop (STVD), 这两个软件都感觉像是来自 90 年代,但玩了一段时间后,我发现 STVD 是一个不错的选择,因为它是完全免费的。同样,对于编译器,我们将使用 Cosmic C 编译器,同样只是因为它是完全免费的。选择这个 IDE 和编译器的另一个原因是,一旦我们熟悉了环境,应该很容易使用 ST 的任何其他 8 位微控制器,而无需付出太多努力。我们将在本文后面介绍如何使用 Cosmic C 编译器安装和设置 STVD。
For Flashing, we will be using ST Visual Programmer (STVP), this tool will automatically get installed when we install STVD. It will be integrated in the IDE itself, helping us to quickly program and debug. The final software will be STMStudio which is an STM8 Monitoring software. The software can help with real-time debugging of STM8 and has some cool features like monitoring variable value, plotting graph, etc. I have not experimented enough with this software. And, at least for the first few tutorials, we won’t be using this software since we won’t need big debugging requirements.
STM8S 标准外设库: ST Microelectronics 提供了一组库来简化 STM8S 微控制器的代码开发,这个库被称为“标准外设库”或简称 SPL。该库很酷,除了它是通过记住 STM8S/A 8 位系列中所有可能的控制器而编写的,而不仅仅是我们将使用的 STM8S103F3P6 控制器。因此,我们必须在这里和那里进行一些调整以使其工作(稍后我将分享)。但是,我仍然认为值得一试,因为它可以使开发速度非常快,因此,我们将在我们的教程中使用它。
如果您不想使用该库,则必须直接访问控制器的寄存器或进行裸机组装编程。只要您有时间学习和使用它,这两者都很有趣。我的想法是在 SPL 库运行良好的地方使用它,然后在需要时在寄存器和汇编级别上工作。让我们尽量不要重新发明轮子!
如果我不提及 Arduino IDE 支持 STM8S,那么讨论软件选项将永远不会完整。是的,同样的 STM8S103F3P6 板可以使用 Sduino从 Arduino IDE 直接编程,这要感谢 Michael Mayer。但是,该项目仍处于开发阶段,可能需要一些时间和社区支持 Sduino 才能提供完整的平台支持。然而,就在玩 Sduino 的几分钟内,我开始喜欢它,因此决定另外写一篇关于如何使用 Arduino 对 STM8S 微控制器进行编程的文章。准备好后,我将在此处链接该文章。那篇文章将讨论为什么以及为什么不应该使用 Arduino IDE 对您的 STM8S 微控制器进行编程。
下载所需软件的
现在我们已经决定了我们将用于本教程的软件,让我们继续使用以下链接下载它们。所有软件都可以免费下载和使用,如果您还没有在 ST 和 Cosmic 上注册一个免费帐户,您只需注册一个免费帐户即可。
ST 视觉开发 (STVD)
Cosmic C 编译器
标准外设库
STM8Cube Mx (可选)
STM8 的 STMStudio (可选)
设置 STVD 和 Cosmic C 编译器
下载这两个软件后,只需按照屏幕上的说明进行安装即可。我建议将它们保留在默认目录中以避免以后混淆。STVD IDE 将毫不费力地安装。对于 Cosmic C 编译器,您必须在安装过程中获得免费的许可证密钥。您只需提供公司信息和 E-mail ID,如果您是学生,请提及。获取许可证密钥的过程是即时和自动的,虽然设置说明说可能需要一两天,但我一提交就自动在我的电子邮件 ID 上收到了许可证密钥,只要确保你检查垃圾邮件。我的确认电子邮件如下所示。
按照电子邮件说明,只需复制 license.lic 文件并粘贴到安装文件夹中的“license”子文件夹中。对我来说,路径是 “C:\Program Files (x86)\COSMIC\FSE_Compilers\CXSTM8\License”。只需将文件粘贴到如下所示的位置
STM8S103F3P6 标准外设库
如前所述,ST Microelectronics 提供名为 SPL 的库,可用于所有 8 位 STM8S/A 微控制器。您可以从 ST Microelectronics 下载原始 SPL 并进行所需的更改,或者下载我的 STM8S103F3P6 SPL 库并照此使用。我会推荐后者。
ST Microelectronics 的原始 SPL
STM8S103F3P6 声压级
当您在那里时,请确保下载 SPL 用户手册,这在对控制器进行编程时将非常方便。
编译第一个程序
现在一切准备就绪,让我们尝试编译我们的第一个程序,以检查 IDE、编译器和库是否都按应有的方式工作。您还可以查看页面底部的视频以获取详细说明。
首先打开 STVD 并选择 File -》 WorkSpace,在弹出窗口中选择“New Workspace”并输入项目名称和程序应保存的路径。我将我的程序命名为 BareMinimum 并将其保存在桌面上的文件夹中。单击确定,您将获得如下所示的新建项目对话框。
我再次将项目命名为bareminimum,在工具链下,我们必须将工具链根指定到安装STM8 Cosmic编译器的路径。默认路径地址为 “C:\Program Files (x86)\COSMIC\FSE_Compilers\CXSTM8”。之后只需单击“确定”即可获得“MCU 选择”窗口。
搜索 STM8S103F3P 并选择它并单击确定。这将在 STVD 上为 STM8S103F3P 打开一个新项目,完成后窗口应如下所示。
右键单击“源文件”并选择“将文件添加到文件夹”以包含我们 SPL 库中的所有 c 文件,同样右键单击包含文件以包含所有头文件。如果您有任何疑问,可以参考下面的视频。添加完所有文件后,单击 Build -》 rebuil d all 然后 Compile 检查编译器和 SPL 是否按预期工作。如果一切顺利,您应该会看到以下屏幕,其中包含构建结果 0 错误和 0 警告。
完成后,现在我们可以确定我们所有的 SPL 库都在使用 Cosmic 编译器和 STVD。这是我们将为每个新项目遵循的标准程序。如果需要,您还可以仅包含项目所需的必要头文件和源文件,以减少构建时间。
使用 ST-Link V2 将代码从 STVD 上传到 STM8S 开发板
将 ST-Link V2 与开发板连接,如下图所示。
连接非常简单,最好的部分是您不需要外部组件。我的编程硬件设置如下所示,我刚刚使用母头线进行连接。但是,请注意您的 ST-Link 的引脚排列可能与我的不同,请确保在进行连接之前遵循设备上的引脚排列。
建立连接并将设备连接到您的计算机,驱动程序安装应自动开始。您可以使用设备管理器来确保您的计算机是否正确发现了 ST-LINK V2。如果这是第一次为电路板供电,您还会注意到电路板上的测试 LED 闪烁。一旦我们在 STVD 上成功编译了代码,我们就会在项目文件夹的 debug 目录下得到一个“S19”扩展文件。我的 S19 文件如下所示。
这个 S19 就像应该上传到控制器的 Hex 文件。要上传程序,请打开应该与 STVD 一起安装的 ST Visual Programmer (STVP)。然后在配置窗口中,如下图所示选择,然后单击确定。
然后单击 文件-》打开 并导航到我们之前显示的 S19 文件。然后要刷新设备,请按照 程序 -》 当前 选项卡。如果刷写成功,您应该会看到以下输出。
默认情况下,当您购买 STM8S 时,它将有一个闪烁测试 LED 的 blin 程序。现在上传此空白代码后,LED 将不再闪烁。
/* MAIN.C 文件
*
* 版权所有 (c) 2002-2005 STMicroelectronics
*/
#包括“STM8s.h”
主要的()
{
GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_PP_HIGH_SLOW);
而(1);
}
评论
查看更多