学习STM8S慢启动。 第0部分

与STM8L / 32相比, MK系列STM8S具有较小的外围设备库,但可让您轻松地了解基本知识并获得与他的哥哥们一起工作的必要技能。

0.面向谁,为什么和为什么


在撰写本文时,我假设读者可以:

  • 仔细阅读(很少见)
  • 略述英语技术文献(或者,因为他们是程序员的第一语言,所以还是学习的动力)
  • 焊接(至少需要基本技能)
  • 用C编程(同样,并不是所有的事情都那么复杂)
  • Google(无处不在)
  • 使用万用表并具有其他基本技能(例如“不要将手指放在插座中”)

我考虑了本文的目标:

  • 概述以开发基于微控制器的系统的所有阶段
  • 给实际上不是一个人的必要的入门笔记
  • 如果可能的话,读者将了解在哪里,什么以及如何找到


(不重要)
为什么和为什么?

我认为进行详细的MK编程课程很有意义。

我将借此机会更详细地研究整个外围设备,并一路为之助人。
我知道已经有大量的文章甚至培训课程,但是我使用的方法略有不同。 (也许我会受到足够的批评,改变主意并加入MX Cube团队)。

这是可悲的STM控制器如何转换到Arduino。

关于arduino:

在MK上进行软件开发的方法有3种(我所知道的MB,我还没有长大):

  1. 汇编程序开发
  2. 针对特定MK模型的开发
  3. 使用HAL和类似库进行开发

1)我支持这样的观点,即如果您要盖房子,则不要用自己的双手烧掉所有的粘土砖,因为装配工会消失(尽管从此开始)。 开发速度太低。

2)HAL库等 对于初学者来说,太多的“只是这样写”的时刻是不透明的。 因为-也在垃圾桶里。

3)我认为为特定MK创建软件的过程对于初学者来说是最健康的选择;所获得的技能将使它有可能处理8L和32系列(尽管根据文档,单独做会很麻烦)。

您可能已经注意到arduino并未出现在该列表中,因为它是一个教育平台,并不打算以此为基础开发紧凑型设备。 但是出于某种原因(我不知道)对其进行编程的方法已经在Internet上传播和传播。 甚至用于实际的商业项目。 (表示“我已在论坛上下载该库,已连接,它可以运行,但我不知道它是如何运行的”)。

从我的角度来看,我建议采用一种学术上和方法上更有意义的方法。

1.微控制器的选择


我在LQFP32封装中有几个STM8S105K6,它来自这个家族,所以我选择它。

您可以选择系列中的任何MK。

意法半导体有现成的发现板,您可以用中文购买或从其他资源订购。 目前已有中文版的STM8S103F3P6板等。

但是,应该注意的是,现成的木板是为训练而设计的。

在制造商的网站st.com上 ,我们找到了我们的MK并下载了文件:

参考手册:RM0016-所有MK系列STM8S和STM8AF的通用文档。 接下来是RM。
数据表:我有一个STM8S105C4 / 6,STM8S105K4 / 6和STM8S105S4 / 6的DS5855文档。 接下来是DS。

从他的美味(表面上)来看:

  • 支持16 MHz
  • 32 KB闪存,1 KB EEPROM和2 KB RAM
  • 电源2.95-5.5V
  • 8位和16位定时器
  • UART,SPI,I2C
  • 10位ADC
  • 多达38个离散量输入/输出

2.所需设备


我看到使用MK的两种选择:

  1. 从单个组件组装布局
    太好了,很酷,我喜欢。 有很多人这样做。

    在这种情况下,MK将需要所谓的捆扎。 该计划很简单:

    1. 我们拿一块面包板,在我的情况下为TQFP(32-64PIN)0.8MM,将MK焊接到它上面
    2. 我们将双排梳状PLS-2x40焊料焊接到导致MK结论的孔上
    3. 我们拿一块印刷面包板(我有9x15厘米),然后将最后一个三明治焊接在上面
    4. 我们看RM点7。 根据记录,您需要一个电容器来连接VCAP引脚和我们的0V电源。 另外,您还需要在DS的“电气特性”部分中更详细地了解特定的MK。 对我来说,这是VCAP外部电容器的10.3.1条款,参考表18,其标称值为470-3300 nF。 我用了1 mF(在电路C3中)。 (为什么需要它,希望您自己以RM阅读)
    5. 同上,在DS中的第10.3.8节。 复位引脚特性我们发现电容额定值为0.1mF(在电路C4上)。 在调试板和各种应用笔记中都使用了标称值为10 kOhm的电阻R4,尽管在MK内部已经有一个标称值为30至80 kOhm的上拉电阻(如果您相信相同的DS)。 与电容器C4并联,我们放置了复位按钮。 例如,在Desighn注释DN0005中可以看到这种复位模式。
    6. 同样,ST喜欢在连接到+1电源的N个引脚的数量上向调试板添加100nF的电源电容器。 该图仅显示了C1,C2和C5 3件,我没有将它们焊接在板上,但是您了解了含义。 如果没有它们,它将在桌面上工作,但是在实际的商业开发中,最好在选配器件板时注意这一点。
    7. 解析SWIM编程连接器(由PLS-1x40制造)

    我有一个奇迹:


  2. 购买成品板(这并不能避免您使用烙铁)
    太好了,很酷,我喜欢。 有很多人这样做。

    值得熟悉该板的配置,如果它是ST的板,则它立即与编程器连接,并通过USB B型电缆连接。 ST站点将在产品页面上显示一个图表。 板上有按钮,LED,高音扬声器,电容式按钮以及其他可用来演奏的装饰物。

    如果开发板是中文的,那么通常没有程序员的开发板,您将需要一名程序员。

    结论名称的丝网印刷最好不要与DS相比相信和仔细检查。

我不考虑使用接触式面包板,因为我不使用它。

另外,我需要一名程序员,我有中文的ST-Link V2。 能够编程并支持STM8和STM32。

3.选择一个IDE


对我来说,选择的问题尚不重要,我在STM8的IAR中工作,因为出于旧版本的原因,它创建了一个我当前正在处理的项目。

我们转到网站iar.com ,在搜索中键入我们的MK模型。
下载用于STM8的IAR嵌入式工作台,在安装时选择大小受限制的评估,并限制8 KB的代码。 还是买。 俄罗斯联邦领土上禁止使用黑化的资源版本,但不适用于商业项目。

安装说明位于安装程序或Google中。
我正在使用6.5.3.2581版本。
安装环境,以及程序员的驱动程序。

4.创建一个项目


转到IDE,转到项目->创建新项目-> C ++

单击确定,选择目录(最好不带西里尔字母和空格),选择名称(不带空格和西里尔字母)。

我们转到IDE的根文件夹,并找到inc文件夹,对我来说,路径为:

C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.5\stm8\inc 


在iostm8头文件中,我们找到了我们的MK模型:

 iostm8s105k6.h 

我们从一开始就连接它并添加无限循环。

结果:
 #include<iostm8s105k6.h> //  int main() { while(1){ //  } return 0; } 


在菜单项目->选项->常规选项的设备栏中,选择您的MK。

在项目->选项->调试器的驱动程序栏中,选择ST-LINK。

在工具栏上找到“下载和调试”按钮。
在第一次编译时,环境将要求您选择.eww文件的名称。 (我与该项目的名称相同。)

在“调试日志”窗口的底部应显示以下消息:

  • STM8的预处理器-预处理器已启动
  • STM8调试器-调试器已启动
  • 连接到STM8 SWIM调试系统-连接到MK
  • 加载的调试器-发生固件下载
  • 目标重置-发生重置

我们处于调试模式,但程序已暂停。
在工具栏上的同一位置,我们找到并按下“执行”按钮。
我们以调试模式启动了MK。

单击“停止调试”,调试将停止,但是MK由程序员提供动力,然后运行程序,即,它旋转了一个无限循环,并且不执行任何操作。

总结


结果是简要概述并介绍了无需编程即可对STM8S系列MK进行编程的过程。 事实证明,这只是工作的基础,通常是从一切开始-布局的组装。

我没有更详细地说明这一点。

在介绍之后,在许多文章中,实际上是经过两行之后,LED闪烁,这是我不理解的。

通过使用我提出的信息,初学者是否能够自己做点什么,就可以判断目标的实现情况。 (指示器窗口调试日志)

谢谢您的关注。

Source: https://habr.com/ru/post/zh-CN465597/


All Articles