1-风驰STM8开发板简介
深入浅出stm8单片机入门、进阶与应用实例

深入浅出stm8单片机入门、进阶与应用实例STM8单片机是一款性能优越、功能丰富的微控制器,被广泛应用于嵌入式系统中。
本文将从深入浅出的角度,为大家介绍STM8单片机入门、进阶以及实际应用案例。
一、STM8单片机入门1. STM8单片机概述STM8单片机是意法半导体公司推出的一款8位微控制器,采用了高性能的STM8内核和丰富的外设资源。
相比其他8位单片机,STM8单片机具有更高的性能、更丰富的功能和更低的功耗。
2. STM8单片机编程语言STM8单片机支持多种编程语言,包括C语言、汇编语言、BASIC语言等。
其中,C语言是最常用的一种编程语言,具有语法简单、易于理解等优点。
3. STM8单片机开发环境STM8单片机开发环境包括开发工具和编程器。
常用的开发工具有IAR Embedded Workbench、ST Visual Develop、Keil uVision等。
编程器可以选择ST-Link/V2、ST-Link/V3、J-Link等。
4. STM8单片机基础知识STM8单片机基础知识包括IO口、定时器、中断等。
掌握这些基础知识是学习STM8单片机的基础。
其中,IO口用于接收或输出数字信号,定时器用于计时、测量时间等,中断用于实现程序的异步处理。
二、STM8单片机进阶与实践1. STM8单片机外设应用STM8单片机具有丰富的外设资源,包括GPIO、I2C、SPI、USART、ADC等。
这些外设可以满足不同应用场景的需求。
例如,GPIO用于控制LED等外围设备,I2C和SPI用于连接外部设备,USART用于串口通信,ADC用于模拟信号的采集。
2. STM8单片机通信协议STM8单片机支持多种通信协议,包括UART、I2C、SPI等。
这些通信协议可以实现与其他设备的通信,例如与传感器、显示器、无线模块等设备的通信。
不同的通信协议有着不同的特点和应用场景,需要根据实际需求选择合适的协议。
3. STM8单片机中断技术中断是STM8单片机中的一项重要技术,可以实现程序的异步处理。
STM8S208开发板原理图

STM8S208开发板原理图首先,STM8S208开发板的原理图包括主控芯片STM8S208CBT6、时钟电路、复位电路、电源电路、外设接口等。
主控芯片STM8S208CBT6是STM8系列微控制器的核心部件,具有128KB闪存和2KBRAM,还有多个IO口以及各种外设接口。
时钟电路是STM8S208开发板的关键部件之一、它包括晶振、电容和电阻等元件,用于提供稳定的时钟信号。
在原理图中,晶振通常是通过一个谐振电路与主控芯片相连,从而提供准确可靠的时钟信号。
此外,还有电容和电阻用于调整晶振的频率和稳定性。
复位电路用于保证主控芯片在上电或复位时能够正常工作。
它由一个复位按钮和一个复位电路组成。
复位按钮用于手动复位芯片,而复位电路则在上电或复位时将主控芯片的复位引脚拉低,从而进行复位操作。
电源电路是STM8S208开发板的供电系统,包括直流电源输入、稳压电路和电源滤波电路等。
直流电源输入一般通过电源插座或USB接口,用于将外部电源接入开发板。
稳压电路用于将输入的电压稳定为主控芯片和其他电路所需的工作电压。
电源滤波电路则用于去除输入电源中的噪声和干扰,以保证电路的稳定工作。
外设接口是STM8S208开发板的扩展接口,用于连接各种外部设备和元件。
包括通用输入输出口(GPIO)、串行接口(UART、SPI、I2C)、模拟输入输出口(ADC、DAC)以及定时器和中断控制器等。
这些接口可以连接传感器、执行器、显示器等外部设备,实现与外界的数据交互和控制。
总之,STM8S208开发板的原理图是一个完整的电路设计,包括主控芯片、时钟电路、复位电路、电源电路和外设接口等。
它提供了硬件支持,使得开发者可以方便地进行软件开发和系统调试,并快速实现各种应用需求。
风驰STM8开发板例程教学

工程模板的创建在开发STM8的时候,首先要学会创建一个工程模板,所有的开发历程都是基于这个工程模板。
STM8有官方库,在开发的时候很方便,可以远离查寄存器的时代。
学过51单片机或者AVR的人都知道,查寄存器是很不方便的。
现在带大家进入一个利用库来开发单片机的新时代。
本开发板的所有例程都是基于库V2.0.0版本。
STM8的编译器是IAR Embedded Workbench。
下面叫大家如果去创建一个过程模板工程模板创建步骤:1、双击,打开IAR的界面,点击File->New->Workspace,点击Project->Create New Project,出现点击OK就行。
2、右击工程名就可以添加文件夹和文件,3、4、设置工程的Options,右击工程名->Options,设置其中两项,如下图5、在这里设置Device 为STM8S207RB 因为在我们风驰电子STM8开发板的主控芯片是STM8S207RB这里是设置编译路径,使用了3条语句$PROJ_DIR$\..\FWlib\inc$PROJ_DIR$\..\FWlib\src$PROJ_DIR$\..\USER$PROJ_DIR$\..意思是找到当前工程的上一级$PROJ_DIR$\..\FWlib\inc意思是先找到当前工程的上一级FWlib文件夹,再找到inc文件夹$PROJ_DIR$\.意思是当前文件夹这里是设置输出文件为可执行文件此外,我们还有修改一下头文件在stm8s.h的头文件修改#define STM8S207 /*!< STM8S High density devices without CAN */在stm8s_conf.h的头文件里修改你要用到的头文件,不要用到的资源的头文件可以把它注释调就可以,方便使用,到这里,相信大家都体会到用库的方便性了吧。
到这里 ,点击就可以编译成功了。
当你看到这里的话相信你会了怎样创建一个工程了。
小菲教你STM8单片机基础入门

速度达20 MIPS的高性能内核 抗干扰能力强,品质安全可靠 领先的130纳米制造工艺,优异的性价比 程序空间从4K到128K, 芯片选择从20脚到80脚,宽范围产品系列 系统成本低,内嵌EEPROM和高精度RC振荡器 开发容易,拥有本地化工具支持
STM8S主要应用:
STM8L主要特点:
STM8 16 MHz CPU 内置 4-32 KB 闪存,多达 2KB SRAM 三个系列:跨系列的引脚对引脚兼容、软件相互兼容、外设相互兼容 电源电压:1.8 V-3.6 V (断电时,最低 1.65 V) 超低功耗模式:保持 SRAM 内容时,最低功耗 350nA 运行模式动态功耗低至 150μA/MHz 最先进的数字和模拟外设接口 工作温度范围:-40°C 到+85 °C,可高达 125 °C 免费的触感固件库
王志杰 Email: iewangzhijie@ QQ:411238869
1 STM8 微控制器简介
-7-
1.3 STM8A 系列
意法半导体公司推出的 STM8A 是一款专门用于满足汽车应用的特殊需求的 8-位 Flash 微控制器。这些模块化产品提供了真数据 EEPROM 以及软件和引脚兼容性,适用的程序存 储器尺寸范围为 8KB 至 256KB 和 20 至 128-引脚封装。所有器件的工作电压均为 3V 至 5V, 并且其工作温度扩展到了 145°C。
监控、紧急求助
王志杰 Email: iewangzhijie@ QQ:411238869
1 STM8 微控制器简介
-4-
STM8S 产品分为“Access Line(入门级)”和“Peroformance Line(增强型)”,如 下图所示。
王志杰 Email: iewangzhijie@ QQ:411238869
单片机stm8与I2C

例程十五这个例程是讲解一下I2C,相信大家以前学51的的时候想驱动AT24C02的时候就是用到模拟I2C总线吧。
在STM8S207RB中,是以硬件来实现I2C总线的,如果大家说哪一种方式来驱动AT24C02的话,我只能说是各有千秋。
用IO模拟的I2C 总线的话就简单点,但速度不够快,如果是用片内的硬件I2C的话,程序编写有点复杂,但速度快很多。
下面我主要是介绍STM8S207RB的硬件I2C.大家可以参考STM8寄存器.pdf文档中的第246页至248页。
大家在看看我们风驰电子STM8开发板的硬件连接下面我们从主函数看起其他的初始化就不多说了,现在前面的例程都说得很清楚了,先主要是说下与I2C 相关的初始化和读写I2C_DeInit() I2C的复位,其实设和没设都一样,因为单片机复位后它也跟着复位了。
I2C_EEInit() I2C的初始化函数原型:I2C_Init(I2C_Speed, I2C1_SLAVE_ADDRESS7, I2C_DUTYCYCLE_2,\I2C_ACK_CURR, I2C_ADDMODE_7BIT, Input_Clock)重点看下这个函数,这个就是I2C总线的初始化。
设置I2C的速度为标准的速度100K,从地址为0xA0,快速模式Fast mode Tlow/THigh = 2 ,当前数据位应答,7位从地址,时钟为系统时钟。
函数原型:void I2C_Init(u32 OutputClockFrequencyHz, u16 OwnAddress, I2C_DutyCycle_TypeDef DutyCycle, I2C_Ack_TypeDef Ack, I2C_AddMode_TypeDef AddMode, u8 InputClockFrequencyMHz )代码太长了,看工程代码就可以了。
初始化弄好了,那怎样往从地址写一个字节呢?这个很重要我们的选择模式是主设备方式读写这个函数主要是根据I2C的时序来操作的,下面介绍一下I2C的时序来源于STM8寄存器.pdf中第251页这个函数是往AT24C02写一页数据,每页最多能写8Byte。
STM8简介

STM8L151/152
❖ STM8L151/152是STM8L超低功耗系列的增强型产品。与STM8L101相比 ,这些MCU的性能更高,功能更多。
❖ 它们基于16 MHz专用STM8内核,具有高达64KB Flash程序存储器、4KB SRAM和多至2KB的数据EEPROM,采用20~80引脚封装。可以选择12位 ADC和DAC、LCD控制器和温度传感器之类的模拟特性。
STM8L系列
STM8L162
意法半导体的超低功耗产品线,支持多种对功耗极为 敏感的应用,例如便携式设备。STM8L基于8位STM8 内核,与STM32L系列一样采用了专有超低漏电流工艺, 利用最低功耗模式实现了超低功耗(0.30 uA)
STM8L151/152 变
种
STM8L101 增
型
强
STM8L051/052 入
所有STM8S超值系列微控制器的产品制造流程、封装和测试技术均得到了优 化,与现有的STM8S系列产品完成兼容,并且具有相同的IP、主要参数性能和 相同的开发工具。STM8S超值系列利用了STM8专有内核的性能优势。
STM8S103/105
STM8S103/105基本型属于标准多功能8位微控制器。作为低成本超值型 产品升级的第一步,STM8S103/105基本型提供了更多的封装、存储容量、特 性和工厂编程服务选项。
STM8S003/005/007 超值系列
STM8S超值系列提供了所有8位微控制器中的最佳性价比。 很多消费类和大批量工业电子器件均需要基本的MCU功能和极具竞争力的价
格。与现有的低成本MCU相比,STM8S超值型的成本更低,并且还能够以很低 的价格实现接近于STM8S基本型和增强型的出色性能。
STM8简介

STM8AF62
❖ STM8AF62是面向汽车应用的STM8A 多功能8位微控制器的支柱。 STM8AF62系列基于专有STM8内核, 能够在24MHz的频率下提供高达20 MIPS的性能,具有全套定时器、接口 (LIN 2.1、UART、SPI、I2C)、10 位ADC、内部和外部时钟控制系统、看 门狗、自动唤醒单元和集成式单线调试 模块。
STM8S207/208增强型微控制器采用32~80引脚封装。该产品系列具有高达128 KB的Flash程序存储器、高达2 KB的数据EEPROM和高达6 KB的RAM。它最适于工 业、消费类和其它大宗市场内的中端和高端应用。
STM8S专用型
STM8S专用型提供更好的模拟性能,并为DiSEqC应用提供了解决方案。 STM8S903器件最适于那些需要更多模拟特性和更高性能的应用。典型应用包括 电机控制、电池管理、电源和功率管理。STM8S903具有和STM8S103/105基本型相 同的标准特性:全套定时器、接口(UART、SPI、I²C)、10位ADC、内部和外部时 钟控制系统、看门狗、自动唤醒单元和集成式单线调试模块。设计者将得益于更多 ADC通道、定时器同步和内部电压参考。STM8S903基于专用16 MHz内核,采用20或 32引脚封装。程序Flash存储器的容量为8 KB,并且具有640B数据EEPROM和1KB RAM。 STM8SPLNB1专门用于实现LNB碟形封头控制。它是面向DiSEqC(数字卫星设备 控制)协议解码的完整硬件与软件解决方案。该微控制器预先设有应用固件,并且硬件 实现仅需少量额外元件。
二.STM8L开发工具简介 ❖ 1.硬件开发工具
❖ ◆ST-LINK
❖ ◆STM8L开发板 STM8S、STM8L
❖2.软件开发工具
STM8教程实验8-定时器TIM1

例程八 TIM1这一节,我们将向大家介绍如何使用STM8的定时器中的基本定时功能,STM8的定时器功能十分强大,有TIM1高级定时器,也有TIM2、TIM3等通用定时器,还有TIM4基本定时器。
在STM8S参考手册里面,定时器的介绍占了1/3的篇幅,足见其重要性。
这一节,我们分别介绍TIM1的基本定时功能16位高级控制定时器(TIM1)简介:TIM1由一个16位的自动装载计数器组成,它由一个可编程的预分频器驱动。
TIM1有4个通道,分别是1到4。
分别对应于四个不同的捕获/比较通道。
高级控制定时器适用于许多不同的用途:基本的定时测量输入信号的脉冲宽度(输入捕获)产生输出波形(输出比较,PWM和单脉冲模式)对应与不同事件(捕获,比较,溢出,刹车,触发)的中断与TIM5/TIM6或者外部信号(外部时钟,复位信号,触发和使能信号)同步 高级控制定时器广泛的适用于各种控制应用中,包括那些需要中间对齐模式PWM的应用,该模式支持互补输出和死区时间控制。
高级控制定时器的时钟源可以是内部时钟,也可以是外部的信号,可以通过配置寄存器来进行选择。
TIM1的时基单元包括,如下图所示:● 16位向上/向下计数器● 16位自动重载寄存器● 重复计数器● 预分频器16位计数器,预分频器,自动重载寄存器和重复计数器寄存器都可以通过软件进行读写操作。
自动重载寄存器由预装载寄存器和影子寄存器组成。
可在在两种模式下写自动重载寄存器:● 自动预装载已使能(TIM1_CR1寄存器的ARPE位置位)。
在此模式下,写入自动重载寄存器的数据将被保存在预装载寄存器中,并在下一个更新事件(UEV)时传送到影子寄存器。
● 自动预装载已禁止(TIM1_CR1寄存器的ARPE位清除)。
在此模式下,写入自动重载寄存器的数据将立即写入影子寄存器。
更新事件的产生条件:●计数器向上或向下溢出。
●软件置位了TIM1_EGR寄存器的UG位。
●时钟/触发控制器产生了触发事件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作者风驰
QQ 779814207
E-Mail 779814207@
硬件平台风驰STM8开发板
库版本V2.1.0
非常感谢您阅读风驰STM8的学习文档,如果您在学习STM8的过程中遇到什么问题或者对我们的开发板有任何建议的话,非常欢迎您和我们一起讨论。
首先,我们想尝试着说明以下几个问题:
1.为什么选择STM8作为初学者入门的首选单片机而不是51?
答:风驰从以下几点来回答这个问题:
1.性价比高
相比于大多数入门级51开发板所选的51型号,如STC89S52、AT89C52,风驰开发板的STM8单片机—STM8S208R8要强大得多得多。
输入捕捉、输出比较、PWM、时钟控制、电源管理、AWU、SPI、I2C、CAN总线等通信接口,例如STM8S208R8的UART模块不仅有普通的串行通信功能,还有智能卡和IrDA等特有功能。
对应同样的功能,STM8S的性价比更高,普通的51单片机很难集成那么功能,而且,最重要的一点是,STM8多了这么功能,却只比一般开发板上的51单片机贵三四块钱,如此高的性价比,我们有什么理由不选择STM8呢?
2.STM8更适合初学者学习
市面上的51开发板的51型号的功能一般都是最简单的,单片机本身没什么太多的东西学习,所以与其说是在学单片机,不如说是在学如何操作外设。
这样子造成的结果是对结构更复杂,功能更强大的16或32位CPU的学习其实是比较不利的。
相信很多人在学了51之后打算学习32位的STM32,却发现特别不好上手。
那么,为什么说STM8更适合初学者学习呢?
首先,STM8单片机功能更强更丰富,TIM1~TIM4、ADC、SPI、I2C、CAN、BEEP、UART、选项字、FLASH、AWU,两种看门狗等等功能。
对于初学者来说,选择一款功能丰富且强大的芯片作为入门的学习是非常重要。
一开始就能接触到各种功能模块的学习以及各种通信总线的应用,在学习外设的同时深入掌握CPU的结构与功能。
这将大大减少以后进阶学习32位CPU的难度。
库函数大幅减少了初学者学习的时间,降低了学习的难度,使得初学者可以不理会一些细节而快速玩转STM8。
花更少的时间,掌握更多的东西,多么让人心动的事情啊!同时,我们还可以学习库函数的写法,从而掌握更多的编程技巧。
3.是企业和市场选择了STM8。
在我们已经卖出的100多套开发板中,百分之90以上都是企业内部开发人员购买的。
这说明了什么情况呢?这表明了越来越多的企业正在从传统的51向STM8转型,越来越多的产品将会应用STM8单片机。
理由很简单,就在于STM8的高性价比与基于函数库的开发模式,这使得产品的开发周期大为缩减,所以越来越受到企业的青睐。
而这一点与我们的初学者(大部分都是学生朋友)是有直接联系的,因为我们毕业后也是要服务于企业、服务于市场的。
我们要学的肯定是企业在用的、经过市场选择的芯片。
记得自己之前去应聘的时候,就看到有一家公司的招聘广告这样写着:“懂STM8/STM32的优先考虑”。
这是本人的亲身经历,决不是随便说说的。
STM8经过这些年的推广,现在已到了关键时期,基于STM8的应用将会如同雨后春笋一般,前景是非常被看好的。
总结一句话,我们STM8的开发板,可以让您更省钱,可以让您花最少的成本、最少的时间而接触到最多的单片机功能应用,让你紧跟行业步伐,提高自身价值。
好,下面风驰开始为大家介绍风驰STM8开发板:
风驰iCreate stm8开发板特色之……
一、丰富的例程(包含库操作版本和寄存器操作版本)
风驰为大家精心编写了31个实验例程,让您在STM8的学习中披荆斩棘,如鱼得水。
例程包括了从入门例程(如LED流水灯、串口、按键、定时器、蜂鸣器、中断、ADC、PWM等)到提高例程(如LCD显示BMP图片、I2C控制、flash读写、MicroSD卡及文件系统等。
以及接下来将会逐步完善的系统例程µC/OS-II 和µCGUI,学会了µC/OS-II ,掌握了操作系统的基本原理可以大大降低您深入学习其他操作系统的门槛,如Linux、Android、Vxworks等。
二、详细的pdf 实验教程(包含库操作版本和寄存器操作版本),为您的学习保驾护航!
风驰STM 开发板独家做到的开源基于库操作版本和基于寄存器版本的31个例程和5多万字pdf 教程,我们之所以花那么多时间去写例程和教程,还写了两个版本的例程,是因为以下几点原因:
1.写基于库函数操作版本的原意是这是STM8得益于ST 公司的支持所拥有的一个特性。
ST 公司将底层的各个模块的寄存器的初始化进行了封装,向上提供了一系列的接口函数,这使得STM8的入门及使用的难度得到大幅度降低,风驰认为这一点对于初学者来说是很有好处的。
因为这有助于初学者迅速入门并且能够在最短的时间内操作开发板,从而建立起兴趣。
2.ST 公司所提供的库函数其实是非常好的学习资料,里面涉及到非常多的C 语言的知识,通过阅读这些库函数,我们可以明白到这些语法以及数据结构的应用方法。
这是一笔非常宝贵的财富。
我们团队有过开设电子培训班的经历,明白到一开始就纠结于寄存器的理解及设置操作对初学者来说其实是一件非常痛苦
用者展示对模块的底层操作,从而明白究竟是如何对模块的寄存器进行设置的(基于寄存器操作的例程会不断完善和更新)。
我们做了这么多,就是希望能对大家的学习带来帮助。
这是我们的初衷与努力和坚持的理由。
实验例程PDF 一览:
入门教程——让您快速入门STM8
从材料选型、画原理图、到PCB布局布线,到焊板测试;查看各种芯片的DataSheet,写程序调试开发板,不断总结改进……三个月时间,一路过来,感慨良多,遂将这段时间以来的心得、感悟,总结成上述31个例程与31份PDF教程,与各位有需要的人进行分享,交流学习,一起进步。
例程与教程一一对应,从易到难,循序渐进,包含了STM8的方方面面,如GPIO、TIM、SPI、I2C等等,也涉及到如三轴加速度、USB、无线模块等热门应用的开发。
即有利于初学者入门学习,快速上手STM8,也方便有需要的朋友参考。
如果风驰STM8开发板能为您提供帮助,那将是是风驰最大的目的与满足。
如果教程或例程有任何错漏之处,风驰将非常感谢您的指出与批评,风驰也非常欢迎与各位朋友一起探讨。
三、良好的代码风格
风驰的例程是以ST官方库V2.1.0为基础开发,编程语言为C语言,代码结构力求清晰明了,注释参照数据手册内容编写,详细易懂。
代码采取模块化设计,不同模块的功能代码位于不同的C源文件,可移植性高。
下面以SD_FATFS工程为例进行说明:
不同功能的代码文件放置在不同的Group ,方便管理,工程结构也非常清晰。
而对于独立的模块,如LED ,风驰将LED 的初始化,亮灭等等操作按照功能编写成不同函数,包含在led.c 文件,相关声明位于led.h 头文件,而对于SD 卡的操作,如初始化、读SD 卡、写SD 卡等功能函数就全部包含在sd_card.c ,函数和变量声明则位于sd_card.h 文件中,这样可以提高代码的可移植性。
C 源文件注释编写风格,以sd_card.c 为例:
文件头的注释就将整个文件的功能进行描述,以及开发平台,作者、修改日期等等信息注明,做到对源文件的修改有迹可循,了然于心。
文件部分的注释分为头文件、类型定义、宏定义、全局变量、函数定义几个部分,文件结构更清晰。
代码都用Tab 键(设置为4个空格)进行缩进,对关键语句都进行了注释。
关于SD 卡的所有功能就全都在该源文件中实现,而在sd_card.h 头文件中,则包含了c 文件中的函数声明,供外部其他函数调用,提高了可移植性与可读性,如下图所示:
四、丰富而强大的外设,简约而不简单的外型
风驰iCreate STM8开发板整板尺寸为95mm*95mm,麻雀虽小,但五脏俱全。
风驰几乎将STM8S208的所有引脚都用上了,功能非常丰富。
在目前淘宝所卖的STM8的开发板中,我们的开发板上所集成的外设是最丰富的(带USB芯片、RS485、CAN芯片、三轴加速度MMA7455、LCD触摸屏,目前还没有看到在淘宝上看到有STM8的开发板是带LCD触摸屏的,但我们的开发板做到了),但还能把板子尺寸做得如此mini的,绝无仅有,仅风驰iCreate STM8开发板。
要把如此多的外设集成在如此小的板子上,在硬件设计上要考虑很多问题:不同的模块之间进行包地/割地处理、整板敷铜,USB信号线要差分线,晶振下不走线还要做包地处理、退耦电容要紧靠芯片等,这些都要考虑到,才能将板子的EMS(电磁兼容)
附图:
五、简易的下载步骤:
1、安装(在风驰STM8S开发板光盘资料中的配套软件文件夹中)
2、安装后,插上风驰STM8S开发板的USB,上电,打开上述安装的下载软件,设置相关参数,如下图,其他COM3是电脑自动识别出来的,其他参数可以参照下图。
3、按一下开发板上的复位键RESET,点击next(1秒之内,否则不行)
4、选择目标芯片
5、选择下载文件的路径
六、选择下载文件(hex,bin,S19这3种格式)
七、点击next,下载成功。
风驰iCreate祝您学习愉快~~~!!!!!。