- 选择硬件和软件开发工具
- STM8S103F3P6开发
- STM8S103F3P6编程器
- STM8S103F3P6 IDE和编译器
- 使用Sduino的Arduino STM8S
- 下载所需的软件
- 设置STVD和Cosmic C编译器
- STM8S103F3P6的标准外设库
- 编译第一个程序
- 使用ST-Link V2将代码从STVD上传到STM8S开发板
该STM8是一个系列的 8位微控制器 由 意法半导体 已经成为微控制器的成本敏感型产品发展的共同选择。我以前使用过AVR,PIC和其他一些ARM Cortex微控制器,但可以肯定的是,在某些应用程序中,它们会变得过时,并大大增加BOM成本。最近,在拆解了一些廉价的中国产品之后,我发现其中大多数都装有 STM8微控制器 。该IC不仅价格便宜,而且具有很多功能和选件,使其适合在许多不同的应用中使用。例如, STM8S 控制器系列(我们将在本教程系列中学习)是通用控制器,但还有其他系列,例如 用于汽车设计的 STM8A和 用于低功耗电池供电设计的STM8L,扩展了这些控制器的应用。
在本系列教程中,我们将学习如何对STM8S微控制器(尤其是 STM8S103F3P6)进行编程 。开始使用该特定零件号的原因仅在于其性价比。喜欢!!只要看一下它,价格仅为0.25美元(约20卢比),我们就会得到一个带有16Mhz内部振荡器,8kB闪存,10位ADC,UART,SPI和I2C的8位微控制器。谁不会被吸引?此外,STM8S103F3P6受到广泛欢迎,因此,作为初学者,如果您需要教程之外的帮助,您将找到足够的支持。从此开始,我们将有一系列的教程,类似于PIC编程教程,我们将学习如何从基本的闪烁到各种显示和传感器接口对该控制器进行编程。如果您对32位STM微控制器感兴趣,还可以查看STM32F103C8教程和项目。
选择硬件和软件开发工具
既然我们已经放弃了微控制器,那么我们将不得不选择硬件和软件开发工具来开始我们的学习过程。有很多选项,在这里,我选择了可以免费使用且所有人都可以轻松使用的选项。
STM8S103F3P6开发
ST的8位微控制器的官方开发板称为STM8 Discovery套件,但是我们将使用另一个低成本的开发板,您可以从当地供应商或在线商店轻松找到该开发板。下面 显示了我们将在本教程中使用的STM8S103F3P6开发板的图像 。
该开发板仅包含开始开发所需的最少组件。它是面包板友好型产品,适合紧凑型应用。开发板的内部电路图如下所示。
仔细观察,您会发现,除了STM8S103F3p6控制器外,我们还有一个重置按钮来重置控制器。电源线和测试线连接到PB5(端口B引脚5)和AMS1117稳压器,该稳压器将5V从USB端口转换为控制器的3.3V。如果需要,还可以使控制器在5V电压下工作。控制器上的不同部分在下面标记。我们还有4个编程器引脚,分别是3.3V,GND,SWIM和NRST,可用于轻松编程和调试我们的微控制器。
STM8S103F3P6编程器
为了对控制器进行编程,我们将使用 价格便宜且易于在线购买的 ST-LINK v2。ST-LINK v2板有许多变体(金属,塑料,金色,粉红色,裸露板),并且都具有相同的用途。Mine如下图所示,但是您可以使用任何类型的 ST-LINK编程器,其引脚排列会有所不同,因此只需确保正确阅读外壳上的引脚排列即可。ST-Microelectronics本身也提供ST-LINK V3,可用于进行一些认真的调试。我们现在不会使用它,因为它有点贵,我们将为将来保存它。
STM8S103F3P6 IDE和编译器
令人困惑的是,为STM8S103F3P6选择正确的IDE和编译器只是因为有很多选择。下图显示了STM8单片机可用的官方工具。
在配置方面,我们拥有 STM8CubeMx,我尝试了该软件,这对我来说是一个完整的失望。与STM32Cube不同 , STM8Cube无法自动生成代码。它只能生成用于可视化目的的引脚映射,如果要将代码从一个控制器移植到另一个控制器,它可能会派上用场。除此之外,我不会使用它。因此,在本教程系列中,我们将不会使用它。
对于IDE和编译器,我们有很多选择。 IDE的前两个选项是 IAR工作台 和 ST Visual Develop(STVD), 这两个软件都好像是90年代以来的,但是经过一段时间的使用,我发现STVD只是一个很好的选择,因为它是完全免费的。同样,对于编译器,我们将再次使用 Cosmic C编译器,因为它完全免费。选择此IDE和编译器的另一个原因是,一旦我们熟悉了环境,就可以轻松地使用ST的其他8位微控制器,而无需付出太多努力。本文后面将介绍如何使用Cosmic C编译器安装和设置STVD。
对于Flashing,我们将使用 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,那么讨论软件选项将永远不会完成 。是的,感谢Michael Mayer,可以使用Sduino从Arduino IDE直接对同一块STM8S103F3P6板进行编程。但是,该项目仍处于开发阶段,可能需要一些时间和社区支持才能为Sduino提供完整的平台支持。但是,在与Sduino玩了几分钟之后,我开始喜欢它,因此决定另写一篇关于如何使用Arduino编程STM8S微控制器的文章。准备好后,我将在这里链接文章。该文章将讨论为什么以及为什么不应该使用Arduino IDE对STM8S微控制器进行编程。
因此,这些是我对软件和硬件的选择,如果您认为其他软件会是更好的选择,为什么在注释部分中告诉我。我也想探索其他选择。
下载所需的软件
现在我们已经决定要在本教程中使用的软件,让我们继续使用下面的链接下载它们。所有软件均可免费下载和使用,如果您尚未注册,则只需在ST和Cosmic上注册一个免费帐户即可。
- ST Visual Develop(STVD)
- 宇宙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的标准外设库
如前所述,意法半导体提供了称为SPL的库,该库可用于所有8位STM8S / A微控制器。您可以从ST Microelectronics下载原始SPL并进行所需的更改,也可以下载我的STM8S103F3P6 SPL库并直接使用它们。我建议稍后。
ST Microelectronics的原始SPL
STM8S103F3P6 SPL
当您在那里时,还请确保下载《 SPL用户手册》,这在对控制器进行编程时非常方便。
编译第一个程序
现在一切就绪,让我们尝试编译我们的第一个程序,以检查IDE,编译器和库是否都按应有的方式工作。您也可以查看页面底部的视频以获取详细说明。
首先打开STVD,然后选择File-> WorkSpace,在弹出窗口中,选择“ New Workspace”,然后输入项目名称和保存程序的路径。我正在命名程序BareMinimum,并将其保存在桌面上的文件夹中。单击确定,您将看到如下所示的“新建项目”对话框。
我再次将该项目命名为最低,并且在工具链下,我们必须将工具链根目录指定为STM8 Cosmic编译器的安装路径。默认路径地址是 “ C:\ Program Files(x86)\ COSMIC \ FSE_Compilers \ CXSTM8” 。之后,单击确定即可获得“ MCU选择”窗口。
搜索STM8S103F3P并选择它,然后单击“确定”。这将在STVD上为STM8S103F3P打开一个新项目,完成后窗口应如下所示。
右键单击“源文件”,然后选择“将文件添加到文件夹”以包含来自我们的SPL库的所有c文件,类似地,右键单击包含文件以包含所有头文件。如有任何疑问,请参阅下面的视频。添加完所有文件后,单击 Build-> 全部 重建 ,然后进行Compile检查编译器和SPL是否按预期工作。如果一切顺利,您应该看到以下屏幕,显示构建结果0错误和0警告。
完成此操作后,现在我们可以确定我们所有的SPL库都可以与Cosmic编译器和STVD一起使用。这是我们对每个新项目都会遵循的标准程序。如果需要,还可以仅包含项目所需的必要头文件和源文件,以减少构建时间。
使用ST-Link V2将代码从STVD上传到STM8S开发板
如下所示,将ST-Link V2与开发板连接。
连接非常简单,最好的部分是您不需要外部组件。我的编程硬件设置如下所示,我刚刚使用了母头连接线进行连接。但是,请注意,ST-Link的引脚排列可能与我的不同,在进行连接之前,请确保遵循设备上的引脚排列。
进行连接并将设备连接到计算机后,驱动程序安装将自动开始。您可以使用设备管理器来确保您的计算机是否正确发现了ST-LINK V2。如果这是第一次为评估板供电,您还将注意到评估板上的测试LED闪烁。在STVD上成功编译代码后,我们将在项目文件夹的调试目录下获得“ S19”扩展文件。我的S19文件如下所示。
此S19类似于应上载到控制器的十六进制文件。要上传程序,请打开应与STVD一起安装的ST Visual Programmer(STVP)。然后在配置窗口中,如下图所示进行选择,然后单击“确定”。
然后单击 File-> Open 并导航到我们之前显示的S19文件。然后,要刷新设备,请按照 程序->当前 选项卡。如果闪烁成功,您应该看到以下输出。
默认情况下,当您购买STM8S时,它将有一个blin程序使测试LED闪烁。现在,在上传此空白代码之后,LED将不再闪烁。
重要提示:我发现我的ST-Link在编程后没有自动重置板子。我必须断开连接并重新连接它才能检查程序的输出。我不确定这是否对每个人都有问题,请在评论部分让我知道。另外,请查看底部的视频,其中介绍了解决方法。
这样,我们就结束了本教程,我们学习了硬件的基础知识,建立了开发环境,并学习了如何编译和上传代码。现在我们已经准备好前进,我们将在所有即将开始的教程中使用它。如有任何疑问,请在我们的论坛上发布它们,敬请期待!