【天津科技大学智能科学与先进制造实验班】LED篇:手焊STM8S208MB开发板的测试与学习

一、引言

        首先感谢天津科技大学董舰老师以及创驿社各位学长们对我们22级智能科学与先进制造实验班的培养与帮助,能给我们一个非常珍贵的实践机会来学习STM8单片机,本篇将以零基础手把手教会大家如何通过点亮LED,从而测试自己手焊STM8开发板是否合格。如果有错误,欢迎大家及时指导。.

 

二、关于STM8的编译器的下载

        1、STVP(这里不推荐)

        STVP(ST Visual Programmer)是由意法半导体(STMicroelectronics)开发的一款集成开发环境(IDE),主要用于编程和调试STM8系列微控制器。

STVP提供了一种直观易用的界面,使得用户可以轻松地编译、下载和调试STM8单片机的应用程序。用户可以通过STVP将STM8单片机的Flash、EEPROM、Option Bytes等进行编程和擦除,以及进行调试操作,包括单步调试、断点调试、观察和修改寄存器、内存和变量等。

        除了基本的编程和调试功能之外,STVP还提供了一些高级功能,如仿真模式、实时跟踪等,可以帮助开发人员更快速、更准确地诊断和解决问题。此外,STVP还支持多种编程语言,包括C、C++和汇编语言等,使得用户可以根据自己的喜好和需要选择合适的编程语言。

百度网盘下载地址:

链接:https://pan.baidu.com/s/1KtWA7MXYD2QC4JBfm2HEHA?pwd=lvw1 
提取码:lvw1

        2、IAR(推荐使用)

        IAR Embedded Workbench for STM8(简称IAR)是一款由IAR Systems公司开发的集成开发环境(IDE),专门用于编译、调试STM8系列微控制器的应用程序。IAR被广泛认为是一款高效、稳定、易用的开发工具。

        IAR提供了一个直观的用户界面,使得用户可以方便地编辑、编译、调试和下载STM8的应用程序。其编译器和调试器都是针对STM8单片机进行优化的,能够生成高效的代码并提供实时调试功能。

        除了基本的编译和调试功能之外,IAR还提供了一些高级功能,如代码分析工具、代码覆盖率分析、CPU使用率分析、动态内存分析等,帮助开发人员更好地了解和优化他们的代码。

        IAR还提供了全面的STM8系列微控制器支持,包括各种不同型号和封装的芯片,以及各种不同的外设和接口。它还提供了广泛的文档和示例代码,帮助用户快速掌握和应用STM8单片机开发。

百度网盘下载地址:

链接:https://pan.baidu.com/s/1AEycyuYSBVTp95NMHW4UbA?pwd=5l3i 
提取码:5l3i

三、软件的安装

这里引用了CSDN另外两位博主的文章:

STVP安装 原作者:StrongHuang

IAR安装 原作者:“dandan”不能定义

四、ST-LINK下载器

        我们在大一上学期时使用过Mixly编译器编写过Arduino UNO的程序,在下载程序时只需要将Arduino UNO单片机上的串口通过USB连接电脑即可烧录程序。但是在使用STM8以及STM32时,我们烧录程序大多数会使用一个名叫ST-LINK的下载器来烧录程序。

        ST-Link是意法半导体(STMicroelectronics)推出的一款微控制器下载器,用于将编译好的代码下载到STM32和STM8微控制器中,并且支持微控制器的调试功能。

        ST-Link下载器是一种USB接口的设备,它包括了一个JTAG/SWD接口和一个USB接口。用户可以通过ST-Link将编译好的代码下载到微控制器中,并且在微控制器中设置断点、单步执行等调试操作,以帮助开发人员诊断和解决代码中的问题。

        ST-Link下载器不仅支持STM32和STM8微控制器,还支持其他一些微控制器,如STM32MP1系列等。此外,ST-Link下载器还支持多种不同的IDE,包括IAR Embedded Workbench、Keil MDK-ARM、Eclipse等,可以与开发人员熟悉的IDE进行无缝集成。

        大家可以在某宝或者某东自行购买,实物如图4-1

图4-1 ST-Link

五、ST-Link硬件连接STM8开发板

        当我们已经拥有一块STM8和ST-Link时,我们所有的硬件设备就已经准备完毕,现在只需要将ST-Link与STM8开发板连接起来并插在电脑上,再写一段代码即可点亮LED(获得成就:点灯大师),那我们该如何连接呢?

        我们仔细观察一下ST-Link上面的丝印如图5-1,可以看到5V,3.3V,GND,RST,SWIM,SWDIO,SWCLK的字样,ST-Link数据手册如图5-1:

图5-1 ST-Link数据手册

 这里我们使用ChatGPT帮助我们翻译一下:

由USB连接器提供的5V电源兼容USB 2.0全速接口提供USB Type-A到Mini-B数据线SWIM特定功能:

  • SWIM接口支持1.65 V至5.5 V的应用电压
  • 支持SWIM低速和高速模式
  • SWIM编程速率:低速时为9.7 kbyte/s,高速时为12.8 kbyte/s
  • SWIM可连接到具有ERNI标准连接器的应用程序 ◦
  • 垂直连接器参考:284697或214017。
  • 水平连接器参考:214012
  • SWIM电缆可连接到具有引脚头或2.54 mm间距连接器的应用程序
  • JTAG / 串行线调试(SWD)特定功能:
  • JTAG / SWD接口支持1.65 V至3.6 V的应用电压和5 V容忍输入
  • JTAG电缆可连接到标准的JTAG 20针2.54 mm间距连接器
  • JTAG支持
  • 支持SWD和串行线查看器(SWV)通信
  • 直接固件更新支持(DFU)
  • 在与PC通信期间状态LED闪烁
  • 工作温度范围从0°C到50°C
  • 1000 Vrms高绝缘电压(仅适用于ST-LINK / V2-ISOL)
  • 其中5V,3V是正极(这里需要注意,通过STM8的数据手册得知STM8既可以5V供电也可以3,3V供电,但是在以后使用STM32时需要注意,STM32不可以使用5V供电,只能使用3.3V供电),GND是接地负极,这两个是之前上课讲过的,也是最重要的构成电路回路的部分。关于RST,SWIM,SWDIO,SWCLK大家可以查看数据手册,STM8需要连接的是RST和SWIM。如下图5-2:

    图5-2 ST-Link丝印

            我们打开本开发板的烧录接口原理图如图5-3(因考虑本开发板是老师学长辛苦绘制出来的,暂且不在此处放置全部原理图,请大家在班群自行下载),大家可以看到原理图的网络标识都有与ST-Link相对应的,只需要对应连接即可。

    图5-3 ST-Link原理图

            下图为实物连接图,如图5-4:

    图5-4 实物图连接

    六、连接LED

            我们现在已经成功将ST-Link与STM8连接到一起了,今天的目标是点亮LED,我们现在进行硬件连接的最后一步,连接LED。首先我们同样的先查阅LED的原理图,如图6-1:

    图6-1 LED原理图

            我们可以看到LED2与LED3他们一端共地一端连接的是1,2号排针,由此可以分析出,只需要给1,2号排针释放一个高电平即可点亮LED2与LED3。现在问题来了,LED4与LED5他们一端是3,4号排针好像没有什么问题,但是另一端他们却是VCC-MCU,那这个VCC-MCU是什么呢?我们可以仔细查阅电源电路原理图,在原理图中已经标注了VCC-MCU是单片机电源,如图6-2。

     图6-2 电源电路

            那我们找到STM8S208MB数据手册看一下单片机电源的引脚的部分,先看数据手册中的符号和缩写说明,如图6-3:

    图6-3 符号和缩写说明 

            通过图6-3得知,S为供电引脚,我们找出所有供电引脚查看说明,如图6-4:

    图6-4 数据手册(引脚)

            从而我们分析上面LED电路原理图,如果我们想给LED3和LED4点亮,就需要给LED的两端实现电势差,从而使电流流动,他们的一端是高电平,那只需要给另一端设置低电平即可点亮LED3和LED4。

            那我们现在的电路已经分析清楚了,那我们只需要给4个排针分别连接一个单片机的GPIO即可完成控制电路,我这里选择的是PI0-4,如图6-3:

    图6-3 LED实物连接图

    七、程序编写

            在下载完IAR之后,我们只需要编写一个很简单的设置GPIO高低电平的程序即可完(获)成(得)点(点)亮(灯)LED(大师)的任(成)务(就),根据刚才分析完的电路,我们需要将PI0,PI1设置成高电平PI2,PI3设置成低电平。由于大家没有学习过寄存器编程,本人不在这里过多赘述,CV一遍代码即可实现。在写代码之前,我先教大家如何配置好IAR的编程环境。按照以下图片流程即可,我就不标图序号了(别管,我懒)。

            OK,好的恭喜大家,距离点亮4个LED仅差最后一步CV代码,烧录的按钮就是倒数第二个图标,绿色的小三角,代码我直接奉上: 

    #include "iostm8s208mb.h"       //调用STM8S208MB头文件
    
    int main()
    {
      while(1)
      {
        PI_DDR=0x0F;        //设置输出
        PI_CR1=0x0F;        //设置推挽模式
        PI_CR2=0x00;        //设置频率
        PI_ODR=0x03;        //设置PI0,PI1为高电平,PI2,PI3低电平
      }
    }

    最后实物效果如下,如果失败了一定是你的焊接出了问题,绝对不是我太菜了: 

     

    恭喜你解锁了点灯大师的成就,你距离点亮mos又进了一步。加油吧骚年!

    物联沃分享整理
    物联沃-IOTWORD物联网 » 【天津科技大学智能科学与先进制造实验班】LED篇:手焊STM8S208MB开发板的测试与学习

    发表评论