STM8单片机入门 V2.6
- 格式:pdf
- 大小:4.25 MB
- 文档页数:71
深入浅出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单片机中的一项重要技术,可以实现程序的异步处理。
stm8 课程设计一、课程目标知识目标:1. 理解STM8微控制器的结构、工作原理及特点;2. 学会使用STM8的开发环境,掌握基本的编程技巧;3. 掌握STM8的I/O端口操作、中断处理、定时器等基本功能的使用;4. 了解STM8在嵌入式系统中的应用及发展前景。
技能目标:1. 能够运用C语言进行STM8程序设计;2. 能够使用开发工具进行程序编译、下载和调试;3. 能够分析并解决STM8程序中出现的常见问题;4. 能够结合实际需求,设计简单的嵌入式系统。
情感态度价值观目标:1. 培养学生对电子技术及编程的兴趣,激发学习热情;2. 培养学生的团队合作意识,学会与他人共同解决问题;3. 培养学生的创新思维,敢于尝试新方法,挑战自我;4. 增强学生的自信心,使他们在学习过程中体验成功。
课程性质:本课程为实践性较强的课程,以STM8微控制器为基础,结合实际应用案例,培养学生的编程能力和嵌入式系统设计能力。
学生特点:学生具备一定的电子技术基础和C语言编程能力,但对STM8微控制器及其开发环境较为陌生。
教学要求:结合学生特点,注重理论与实践相结合,以项目为导向,引导学生主动探究,培养实际操作能力。
在教学过程中,注重个体差异,激发学生的学习兴趣,提高他们的自信心和创新能力。
通过本课程的学习,使学生能够掌握STM8微控制器的基本应用,为后续相关课程和实际工作打下坚实基础。
二、教学内容1. STM8微控制器概述- 了解STM8的发展历程、特点及优势;- 熟悉STM8的内部结构、外设资源及工作原理。
2. 开发环境搭建- 学习使用STM8的开发板、仿真器及相关软件;- 掌握如何编译、下载和调试STM8程序。
3. 基本编程技巧- 掌握C语言在STM8编程中的应用;- 学习I/O端口操作、中断处理、定时器等基本功能的使用。
4. 常用外设及应用- 学习STM8与其他外设(如传感器、电机等)的接口设计;- 分析实际案例,掌握STM8在嵌入式系统中的应用。
STM8学习笔记——时钟和GPIO说起STM8 的时钟,那还真是个杯具,用HSI 没问题,切换到HSE 也没问题,就是切LSI 怎么都不行,然后百思不得其解人,然后上论坛求教,才知道还有个选项字节(OPTION BYTE),数据手册上有这么一段描述:选项字节包括芯片硬件特性的配置和存储器的保护信息,这些字节保存在存储器中一个专用的块内。
除了ROP(读出保护)字节,每个选项字节必须被保存两次,一个是通常的格式(OPTx)和一个用来备份的互补格式(NOPTx)要使用内部低速RC 必须将LSI_EN 置1,就是这个地方让我纠结了半天,然后用IAR 将其置1,方法是:进入调试模式,在上面有个ST-LINK,点击,看到OPTION BYTE,左键点进去,右键单击上面的选项,就可更改了,然后全速运行,就写进去了。
STM8 的时钟分为HSI,HSE,LSI,最常用的是HSI,STMS105S4 内置的是16M 的RC,叫fhsi。
它可以分频输出为fhsidiv=fhsi/hsidiv,如果选择其为主时钟源,那么主时钟fmaster=fhsidiv。
CPU 时钟fcpu=fmaster/cpudiv。
可以通过外设时钟门控寄存器CLK_PCKENR1 和CLK_PCKENR2 选择是否与某个外设连接。
好了上个切换内部时钟的源代码,测试通过void CLK_Init(void){ //切换到内部LSI(!!!需要修改选项字节的LSI_EN 为1)CLK_ICKR|=0x08;//开启内部低速RC 震荡while(CLK_ICKR&0x10==0); //LSI 准备就绪CLK_SWR=0xd2; while(CLK_SWCR&0x08==0); //等待目标时钟源就绪CLK_SWCR|=0x02; //CPU 分频设置CLK_CKDIVR=0;//内部RC 输出。
STM8 实战篇
一、参考文档《STM8单片机入门V3.0》安装软件。
建议安装在C盘(默认路径)主要看软件安装和cosmic和STVD的结合使用
二、自己建立C语言工程。
(不使用库文件)
建议先新建文件夹
添加头文件和文件路径
路径在
D:\Program Files\STMicroelectronics\st_toolset\include
Stm8s105k.h中定义了特殊寄存器。
下面开始编写程序
硬件中PE5口有一个LED。
做一个闪烁灯。
在线
使用标准库:
和上面一样建立普通的工程。
从其他以库建立的工程中复制以上文件
其中main 和stm8_interrupt_vector 为替换
添加文件:
继续添加使用模块对应的文件
根据主程序使用的配置来添加响应的东西。
可以建立如下的结构
添加文件为
编译后成功。
当然附件了又demo的程序,大家可以拷贝其中的文件,还可以直接在此文件上写程序。
STM8S系列单片机原理与应用复习第1章基础知识1.1计算机的基本认识(11)地址总线,寻址范围,STM8寻址2陀16MB y (2)数据总线,字长,STM8为8位单片机J3)控制总线Q)时钟周期Y(2)机器周期:完成一个基本动作的时间。
1(3)指令周期:一条指令所需的时间。
STM8S: 一个机器周期仅包含一个时钟周期。
1. 1. 1计算机系统的工作过程及其内部结构ALU:算术运算和逻辑运算存储器:ROM, RAM1.1.2指令、指令系统及程序指令:操作码+操作数STM8:属CISC1?2寻址方式确定指令中操作数所在存储单元地址的方式,就称为寻址方式。
2.4 了解单片机特点及其发展趋势第2章STM8S系列MCU芯片内部结构P21STM8S103, STM8S105, STM8S207, STM8S208STM8S103(EEPR0M 64kB), STM8S003(EEPROM 128kB), ID2. 1 STM8S系列MCU性能概述16M地址空间,I/O引脚输入/输出可编程选择,内置HSI各LSI。
内核:高级STM8内核,具有3级流水线的哈佛结构扩展指令集存储器@中等密度程序和数据存储器:@ —最多32K字节Flash; 10K次擦写⑥55° C环境下数据可保存20年◎—数据存储器:多达1K字节真正的数据EEPROM;可达塑万次擦写@ RAM:多达2K字节时钟、复位和电源管理⑥3.L5.5V工作电压,内核电压 1.8V, Vcap⑥灵活的时钟控制,4个主时钟源⑥-低功率晶体振荡器⑥-外部时钟输入⑥-用户可调整的内部16MHz RC令-内部低功耗128kHz RC⑥带有时钟监控的时钟安全保障系统电源管理:⑥-低功耗模式(等待.活跃停机、停机)@ -外设的时钟可单独关闭⑥ 永远打开的低功耗上电和掉电复位中断管理⑥带有32个中断的嵌套中断控制器⑥6个外部中断向量,最多37个外部中断定时器2个16位通用定时器,带有2+3个CAPCOM通道(IC、0C或PWM)@高级控制定时器:16位,4个CAPCOM◎通道,3个互补输出,死区插入和灵活的自动唤醒定时器2个看门狗定时器:窗口看门狗和独立看门狗通信接口⑥带有同步时钟输出的UART ,智能卡,红外IrDA, LIN接口<$> SPI 接口最高到8Mb i t/s⑥12C接口最高到400Kb i t/s2. 2 STM8S系列MCU内部结构P222. 2. 1 STM8 内核CPU P24PC 为24位,可寻址224=1 6Mb累加器(A),堆栈指针(SP),索引寄存器(X 和Y), 条件码寄存器(CC):令V: Overflow H: Half-carry令 N: NegativeZ: Zero令C: Carry? IO, 11: interruptmasklevel 0, 12.2.2 STM8S 封装与引脚排列2.3掌握通用I/O 口GPIO 初始化P31?可选择的输出模式:推挽式输出和开漏输出PB_DDR, PB_CR1,PB_CR22. 3. 1 2.3.2 2.3.3 2.3.4I/O 引脚结构I/O 端口数据寄存器与控制寄存器输入模式输出模式每一个端口都有一个输出数据寄存器(ODR), 一个引脚输入寄存器(IDR)和一个数据方向寄存器(DDR)总是同相关的。
作者风驰QQ 779814207E-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的结构与功能。
STM8是ST推出的新一带8bit MCU,采用三级流水线,最大运行频率20MIPS@24MHz。
具体资料请到STM8S 的官方网页下载:/mcu/modules.php?name=mcu&file=familiesdocs&FAM=113 这里就不罗嗦了。
工作的原因很早就有接触STM8,早期的时候自己摸索走过一点弯路,这里介绍一下STM8系列MCU的软件和硬件环境,方便想用的快速了解。
一、集成开发环境和C编译器软件1、STVD/stonline/products/support/micro/files/st7toolset.exe 这是ST官方的集成开发环境,早期叫STVD7是因为支持ST7系列MCU,后因STM8的推出,改名为STV D,当前最新的版本4.0.1。
该软件安装后默认集成了ST Visual Develop 和ST Visual Programer两个软件,前者是IDE,后者是编程软件。
ST Visual Develop集成开发环境自带ST7、STM8的汇编编译器,同时能够支持外挂多种C编译器,如COSMIC、Metrowerks等。
对于MCU仿真功能,STVD除了可以支持软件仿真,还能支持多种调试工具,例如STICE、STX-RLink等。
(原文件名:STVD.png)ST Visual Programer是编程软件,可通过外接编程工具,支持ST 8bit系列MCU的编程操作。
(原文件名:STVP.png)2、RIDE/download/index.php?active=RIDE7第三放的IDE和C编译器。
IDE和Raisonance C Compiler是各自独立安装的,由于也提供了ARM7、C ortexM3的支持,因此在安装ARM编译器后,IDE也能支持ARM7、CortexM3核的ST芯片开发。
软件安装后,会得到集成开发环境RIDE7和编程软件RFlasher。
第一章嵌入式系统概述1.1 嵌入式系统1.1.1 系统系统是一种根据固定的计划、程序或者规则进行工作、组织或者执行一项或多项任务的方式。
系统也是一种工作安排方法,其所有单元能够按照一定的计划或者程序装配在一起,共同完成工作任务。
1.1.2 嵌入式系统嵌入式系统是控制、监视、或辅助某个设备‘机器甚至工厂运行的设备。
它具备4 个特征:1、用来执行特定的功能2、以微型计算机和外围设备构成核心3、具有严格的时序与稳定度4、全自定操作循环工作还可以用文字总结嵌入式系统的概念:嵌入式系统一般指非PC 系统,有计算机功能但又不称为计算机设备,它以应用为中心,软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。
嵌入式系统的基本架构如下图所示:1.2 嵌入式系统硬件嵌入式系统的核心是嵌入式微处理器。
嵌入式微处理器一般具备4 个特点。
1、对实时和多任务有很强的支持力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时操作系统的执行时间减少到最低限度2、具有功能很强的存储区保护功能,这是由于嵌入式系统的软件结构已经模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。
3、可扩展的处理器结构,以便能够迅速地扩展满足应用的高性能的嵌入式微处理器4、嵌入式微处理器的功耗要求必须很低,尤其是用于便携式的无线及移动的计算和通信设备,对于靠电池供电的嵌入式系统更是如此,功耗往往在mW 甚至uW 级。
1.2.1 嵌入式微处理器嵌入式微处理器,它的基础是通用计算机的CPU。
在应用中,将微处理器装配在专门设计的电路板上,只保留和嵌入式应用有关的母板功能,这样才可以大幅度减少系统的体积和功耗。
嵌入式微处理器具有体积小,重量轻,成本低,可靠性高的优点,但是在电路板上必须包括ROM,RAM,总线接口,各种外设等器件。
嵌入式处理器目前主要有Am186/88、386EX、SC-400、PowerPC、68000、MIPS系列1.2.2 嵌入式微控制器嵌入式微控制器,又称为单片机,顾名思义就是将整个计算机系统集成到一块芯片中。
ST单片机STM8S开发入门教程最近ST在国内大力推广他的8位高性价比单片机STM8S系列,感觉性能上还是非常不错的,网上稍微看了点资料,打算有机会还是学习一下,先入门为以后做好技术积累。
好了,长话短说。
手上拿到一套ST最近做活动赠送的三合一学习套件,上面包括STM32F小板、ST LINK小板、STM8S小板,做工很精致,相信很多朋友也收到了。
既然当初去申请了,人家也送了,总得把用起来吧,放着吃灰尘是很可惜的^_^ 。
好,步入正题,刚开始在论坛上逛了一圈,感觉STM8S的资料实在太少,都是官方的应用资料,没有什么入门介绍,连需要安装什么软件都搞不清楚。
偶的电脑光驱坏了,所以也读不出光盘里有什么东西,所以只能到处瞎摸,还是ourdev论坛好,嘿嘿,仔细看了几个帖子,总算明白大概是什么样的开发环境了。
用C语言开发STM8S,需要安装两个软件:1、STVD IDE开发环境;2、COSMIC for STM8 C编译器。
STVD可以到官网下载,下载地址:COSMIC 需要申请LICENSE,比较繁琐,刚好坛子有人传了一个免安装无限制版本的,偶就赶紧下载了,大家可以去下载,仅做为个人学习使用。
下载地址:软件下载后,只需安装STVD。
从上面地址下载的COSMIC不用安装,只要解压到硬盘即可。
后面建立工程的时候设置好路径即可。
下面一步一步开始啦~一、安装好STVD后,桌面上建立了两个快捷图标,ST Visual Develop就是STVD了。
ST Visual Programmer是编程软件,可以配合ST LINK对STM8S进行编程烧录。
二、双击运行ST Visual Develop,启动STVD开发环境。
执行Workspace,在New Workspace 窗口里选择Create workspace and projects,点击“确定”建立工作组和工程三、在Workspace 里输入Workspace名称,由于最终我们要测试一个现成的LED程序,所以偶写了led,随你喜欢了,呵呵。
STM8新手上路一、安装软件(ST Visual Develop)1.安装ST Visual Develop软件为STM8的开发环境,可以编译程序,也可以下载程序。
为下载程序,一般用上面的STVD下载较多。
2.安装cxstm8_32k软件为C语言编译器,使用时,此软件挂载到STVD开发软件中,如果不安装此软件,STD开发环境只能用汇编语言进行。
此软件在安装时需要注册,如果不注册,则需要破解软件CXSTM8_32k_patch。
3.安装CXSTM8_32k_patch软件为COSMIC软件的破解软件,安装好后才能正常使用COSMIC软件,而COSMIC软件由STVD软件挂用,因此,使用STVD开发环境才能正常使用。
在安装破解时,其目录装在cxstm8_32k软件COSMIC目录下的CXSTM8_32K里。
4.设置开发环境和下载器(第一次用时设置)(1)设置选择开发环境安装完以上两个软件后,打开STVD软件,到“Tools”里的“Toolset”设置“Toolset”为“STM8 Cosmic”,“Root path”为软件安装的位置(选择COSMIC目录下的CXST8_32K)即可。
如图所示:(2)设置选择下载器点击下的,打开对话框,选择最后一个选项后确定。
如下图所示:(3)复制可能用到的芯片头文件(看路径)复制需要使用的芯片头文件到COSMIC的目录下。
(此步骤与建立工程时“文件系统和工具链”的地址有关,地址选哪就复制到哪里)以工具链保存到COSMIC目录下的路径为例:打开STVD的安装目录中将需要的芯片如:STM8S103F3P.h复制到COSMIC目录下的Hstm8中()二、创建工程步骤:1.双击STVD开发软件。
2.点击菜单新建:→→,在弹出的菜单中选择好建立好文件名和保存路径后OK,如图:在弹出的“New Project”菜单有,选择编译器STM8 Cosmic,如图:在Toolchain root 路径里选到C盘的COSMIC目录下,OK。
第一节:心情和时钟说实话我能够使用的单片机不多,我总是以为无论什么单片机都能开发出好的产品。
前些年用51,总是向各位大大学习,无休止的索取,在网上狂览一通。
心里感激的同时也想奉献一些,可是我会什么?后来使用avr(公司要求)还是向大大们学习,我又想奉献,可是我会什么?我会的大大们都写了,我不会的大大们也写了。
一个星期前花项目经费买了***的kit三合一板,最近几天闲了下来,便动手调试一下。
算是有点心得,我又想奉献,可是我会什么?我只是想和大大们交流一下,哪怕是对的或者是错的,大大们满足我的一点心愿吧。
唠叨了这么多,现在开始吧。
配置: stvd , cosmic我学单片机开门三砖总是要砸的。
第一砖:电源系统,这没什么好说的,只是它是stm8工作的基础总是要提一下第二砖:时钟系统,这等下再说。
第三砖:复位系统,stm8只需要一只104电容从reset脚到地就可以了。
现在说说时钟系统,学习单片机无论8位的还是32位的,都要从时钟开始,下面是我一开始的时钟切换程序。
1 CLK_ECKR |=0X1; //开启外部时钟2 while(!(CLK_ECKR&0X2)); //等待外部时钟rdy3 CLK_CKDIVR &= 0XF8; //CPU无分频4 CLK_SWR = 0XB4; //选择外部时钟5 CLK_SWCR |=0X2; //使能外部时钟上面的代码看起来没什么问题,可在调试过程中出现了有时能切换,有时有不能的情况,后来发现只要在第5行设上断点就能切换,我就想是不是得让cpu等一下,我又仔细的翻看下rm0016的时钟部分,发现得等待CLK_SWCR的标志位置位才能切换。
就变成了下面的代码CLK_ECKR |=0X1; //开启外部时钟while(!(CLK_ECKR&0X2)); //等待外部时钟rdyCLK_CKDIVR &= 0XF8; //CPU无分频CLK_SWR = 0XB4; //选择外部时钟while(!(CLK_SWCR&0X8)); //这里要等CLK_SWCR |=0X2; //使能外部时钟现在一切ok,是不是觉得看东西要仔细一下~~。
转载stm8初始化1. IO口: 寄存器(X=A,B,C,D...)PX_DDR: 输入输出状态配置 1:输出,0:输入.PX_CR1: 输出时 1:推挽输出 ,0:开漏输出.输入时 1:上拉输入,0:浮空输入.PX_CR2: 输出时 1:以10MHz的速度输出,0:以2MHz的速度输出.输入时 1:开启中断功能,0:禁止中断.PX_ODR: 输出状态寄存器向其写1 对应的IO口则输出高电位,写0则输出低电位.PX_IDR: 读状态寄存器,读出的结果为1 则对应IO口为高电位,为0则为低电位.2.时钟:(CLK)STM8S刚上电的时候运行的时钟是内部的高速RC振荡器的8分频(HSI/8)(16MHZ/8=2MHZ),其内部还有一个低速的RC振荡器(LSI).用户还可以外接一个最大值为24MHZ的外部晶振作为时钟(HSE).可以通过软件编程来改变系统的主时钟.CLK寄存器(CLK寄存器还有很多,涉及到时钟切换的就这几个就可以了)CLK_CKDIVR: 低3位保存CPU时钟的分频因子(设低3位的值为x 那么分频因子就是2^x),第3位和第4位是HSI时钟的分频因子;其余位保留.CLK_SWCR:[0](SWBSY)时钟切换忙判断位(没切换完成为1,切换完成为0),[1](SWEN)时钟切换启动位 1启动切换 0 禁止切换.[2](SWIEN)时钟切换中断选择位 1:开启时钟切换中断,0:不开启.CLK_SWR: 时钟源选择寄存器,给这个寄存器赋值为 0xe1:主时钟为内部高速振荡器,0xd2:主时钟为内部低速振荡器,0xb4:外部高速振荡器.{ //时钟切换例子从HSI/8切换为HSE//CLK_CKDIVR=0;//分频银子设置为0CLK_SWR=0xb4;//选择时钟源CLK_SWCR&=~(1<<2);//关闭切换中断CLK_SWCR|=(1<<1);//启动切换while(CLK_SWBSY&(1<<0)==1);//等待切换完成}3.串口(UART) STM8S可能有很多串口,这里只讲UART1与串口1配置相关的寄存器:CLK_PCKENR1:这个寄存器的第2位是UART1的时钟启动位,1:启动,0:关闭UART1_CR2:[2]:接收使能位(1:使能,0失能),[3]:发送使能位(1:使能,0失能),[5]接收中断使能位(1:使能,0失能),[6]发送完成中断使能位(1:使能,0失能),[7]发送中断使能位(1:使能,0失能).UART1_CR3:UART1模式选择寄存器[5:4]停止位个数选择 00:1个停止位,01:保留,10:2个停止位,11:1.5个停止位UART1_CR1:[1] 奇偶校验选择位 1:奇校验,0:偶校验.[2]奇偶校验使能位 1:使能,0失能. [4]字长选择位 1: 1个起始位 9个数据位 1个停止位, 0:一个起始位 8个数据位,UART1_CR3[5:4]个停止位.[5] UART1启动位 0:启动 1:关闭UART1_BRR2:波特率选择寄存器2,波特率的值=主时钟频率/分频因子.分频因子就是这两个寄存器的值.比如分频因子为0xABCD 那么UART1_BRR2=0xAD,UART1_BRR1=0xBC.UART1_BRR1:波特率选择寄存器1给这两个寄存器赋值的时候要先给UART1_BRR2 赋值.在给UART1_BRR1赋值,因为给UART1_BRR1赋值完成的时候波特率就已经决定好了,再给UART1_BRR2 赋值就没有意义了.{ //UART1配置例子(开启收发,开启接受中断关闭发送中断)#define BRR 9600//定义波特率(修改波特率只需要修改这个宏的值就可以了)#define Fosc 16000000 //定义CPU频率#define BRR1 (((Fosc)/(BRR))>>4)#define BRR2(((((Fosc)/(BRR))&0xf000)>>8)|(((Fosc)/(BRR))&0x000f))CLK_PCKENR1|=1<<2;//开启UART1时钟UART1_CR2&=~(1<<2);//先关闭接收UART1_CR2&=~(1<<3);//先关闭发送UART1_BRR2=BRR2;//设置波特率先给BRR2赋值在给BRR1赋值UART1_BRR1=BRR1;UART1_CR1&=~(1<<2);//不使用奇偶校验UART1_CR1&=~(1<<4);//选择1个起始位 8个数据位UART1_CR3&=~(1<<4);//选择1个停止位UART1_CR3&=~(1<<5);//选择1个停止位UART1_CR2&=~(1<<6);//不使用发送中断UART1_CR2|=(1<<5);//使用接收中断UART1_CR1&=~(1<<5);//启动UART1UART1_CR2|=(1<<2);//启动接收UART1_CR2|=(1<<3);//启动发送}4:定时器(TIM4)ST的单片机无论是STM32还是STM8S他的定时器的功能非常强大.强大的功能必然伴随着配置更加复杂.我这里先学容易一些的定时器TIM4.TIM4的寄存器:TIM4_IER:与中断有关的寄存器 [0] 设置为1时开启更新中断,设置为0时关闭TIM4_PSCR:计数器的分频因子计数器的频率=时钟源频率/TIM4_PSCR[2:0]TIM4_ CNTR:计数器从TIM4_CNTR的值计数到255 然后从新从TIM4_ARR处开始计数TIM4_ARR:TIM4_EGR:事件产生寄存器 [0]设置为1时有更新事件为0时无更新事件TIM4_CR1:[0] 为1时开启TIM4的计数器,否则关闭TIM4的计数器TIM4_SR: [0]更新事件标准位,中断处理函数里面要将其请0{ //TIM4设置例子#define PERIOD 100#define ARR ((0xff)-(PERIOD))TIM4_IER=0x00;//关闭所有中断TIM4_PSCR=0x04;//计数器频率=16MHZ/2^4;TIM4_CNTR=ARR;TIM4_ARR=ARR;TIM4_EGR|=(1<<0);//产生更新事件TIM4_CR1|=(1<<0);//开启TIM4的计数器TIM4_SR&=~(1<<0);// 清除中断标志TIM4_IER|=(1<<0);// 开启更新中断}5.使用TIM3的PWM功能与PWM(OC1)功能有关的寄存器TIM3_CCMR1:模式选择[6:4]TIM3_CCER1:该寄存器的[0]为1时启动PWM 否则关闭TIM3_CCR1L:比较寄存器低位TIM3_CCR1H:比较寄存器高位当TIM3_CNT寄存器的值小于TIM3_CCR1寄存器时OC1输出的电平和TIM3_CNT大于TIM3_CCR1时的电平不一样(至于究竟是什么电平跟模式有关)从而电位出现高低高低的变化,调节 TIM3_CCR1/TIM3_ARR的比值可以调节占空比{ //TIM3_PWM演示TIM3_ARRL=100;TIM3_ARRH=0;TIM3_CCR1L=50;TIM3_CCR1H=0; //占空比=50/100=0.5TIM3_PSCR=4; //16/2^4=1 分频TIM3_CCMR1|=0x70;//设置为PWM2模式TIM3_CCER|=0x01;//启动PWM输出TIM3_CR1|=0x01;//启动计数器}。
STM8 Debugger Release 09.2023TRACE32 Online HelpTRACE32 DirectoryTRACE32 IndexTRACE32 Documents ......................................................................................................................ICD In-Circuit Debugger ................................................................................................................Processor Architecture Manuals ..............................................................................................STM8 .........................................................................................................................................STM8 Debugger (1)Warning (4)Introduction (5)Brief Overview of Documents for New Users5 Demo and Start-up Script5Configuration (6)System Overview6Quick Start (7)Troubleshooting (9)FAQ (10)STM8 specific SYStem Settings (11)SYStem.CPU Select the used CPU11 SYStem.MemAccess Real-time memory access (non-intrusive)11 SYStem.Mode Establish the communication with the target12 SYStem.LOCK Lock and tristate the debug port12 SYStem.Option.IMASKASM Disable interrupts while single stepping13 SYStem.Option.IMASKHLL Disable interrupts while HLL single stepping13CPU specific TrOnchip Commands (14)Breakpoints (15)Software breakpoints15 On-chip breakpoints for instructions15 On-chip breakpoints for data15Memory Classes (16)Target Adaption (17)Connector Type and Pinout17Version 10-Oct-2023WarningWARNING:T o prevent debugger and target from damage it is recommended to connect ordisconnect the debug cable only while the target power is OFF.Recommendation for the software start:1.Disconnect the debug cable from the target while the target power isoff.2.Connect the host system, the TRACE32 hardware and the debugcable.3.Power ON the TRACE32 hardware.4.Start the TRACE32 software to load the debugger firmware.5.Connect the debug cable to the target.6.Switch the target power ON.7.Configure your debugger e.g. via a start-up script.Power down:1.Switch off the target power.2.Disconnect the debug cable from the target.3.Close the TRACE32 software.4.Power OFF the TRACE32 hardware.IntroductionThis document serves as a guideline for debugging STM8 MCUs and describes all MCU-specific TRACE32 settings and features.Please keep in mind that only the Processor Architecture Manual (the document you are reading at the moment) is CPU specific, while all other parts of the online help are generic for all CPUs supported by Lauterbach. So if there are questions related to the CPU, the Processor Architecture Manual should be your first choice.Brief Overview of Documents for New UsersArchitecture-independent information:•“Training Basic Debugging” (training_debugger.pdf): Get familiar with the basic features of a TRACE32 debugger.•“T32Start” (app_t32start.pdf): T32Start assists you in starting TRACE32 PowerView instances for different configurations of the debugger. T32Start is only available for Windows.•“General Commands” (general_ref_<x>.pdf): Alphabetic list of debug commands.Architecture-specific information:•“Processor Architecture Manuals”: These manuals describe commands that are specific for the processor architecture supported by your Debug Cable. T o access the manual for your processorarchitecture, proceed as follows:-Choose Help menu > Processor Architecture Manual.•“OS Awareness Manuals” (rtos_<os>.pdf): TRACE32 PowerView can be extended for operating system-aware debugging. The appropriate OS Awareness manual informs you how to enable theOS-aware debugging.Demo and Start-up ScriptLauterbach provides ready-to-run start-up scripts for known hardware that is based on STM8.To search for PRACTICE scripts, do one of the following in TRACE32 PowerView:•Type at the command line: WELCOME.SCRIPTS•or choose File menu > Search for Script.Y ou can now search the demo folder and its subdirectories for PRACTICE start-up scripts(*.cmm) and other demo software.Y ou can also manually navigate in the ~~/demo/stm8/ subfolder of the system directory of TRACE32.The on-chip FLASH and the EEProm memory can be programmed via the stm8.cmm script: CD.DO ~~/demo/stm8/flash/stm8.cmmPlease be aware that you should check the Flash and EEProm size specified for your MCU in the stm8.cmm before executing this script.ConfigurationSystem OverviewExample configuration for an STM8 debugger.Quick StartStarting up the debugger is done as follows:1.Select the device prompt B (BDM debugger) and reset TRACE32.B::RESetThe device prompt B:: is normally already selected in the TRACE32 command line. If this is not thecase, enter B:: to set the correct device prompt. The RESet command is only necessary if you donot start directly after booting the TRACE32 development tool.2.Specify the CPU specific settings.SYStem.CPU STM8S005K6This command selects the CPU type.rm the debugger about the cashable address range (FLASH/EEPROM)..MAP.UpdateOnce p:0x8000--0xffffThis is important to speed up the TRACE32 PowerView GUI responsiveness. The specified addressrange will be accessed only once after a break, thus avoiding unnecessary memory accesses.4.Reset the target and enter debug mode.SYStem.Mode UpThis command resets the CPU on the target, enables On-Chip-Debug Mode and issues a breakpointright after the reset interrupt routine.The CPU stops executing any instruction, and the user is able todownload and test the code. After this command is executed, it is possible to access memory andregisters.5.Load the program into the flash.A typical start sequence of the STM8 is shown below. This sequence can be written to a PRACTICE script file (*.cmm, ASCII format) and executed with the command DO <file>.*) These commands open windows on the screen. The window position can be specified with the WinPOS command.DO ~~/demo/stm8/flash/stm8.cmmB::; Select the ICD device prompt RESet; Reset the TRACE32 softwareMAP.UpdateOnce p:0x8000--0xffff ; Specify the address range for caching WinCLEAR ; Clear all windowsSYStem.Up; Reset the target and enter debug mode DO~~/demo/stm8/flash/stm8.cmm ; Load the target application into ; the FlashPER.view ; Show clearly arranged peripherals ; in window *)List.Mix; Open source code window *)Register.view /SpotLight ; Open register window *)Frame.view /Locals /Caller ; Open the stack frame with ; local variables *)Var.Watch %SpotLight flags ast ; Open watch window for variables *)Break.Set 0x1000 /Program; Set software breakpoint to address ; 1000 (address 1000 is within RAM ; address range)Break.Set 0x101000 /Program; Set on-chip breakpoint; to address 101000 (address 101000 is ; within Flash address range)TroubleshootingT ypically the SYStem.Up command is the first command of a debug session where communication with the target is required. If you receive error messages like “debug port fail” or “debug port time out” while executing this command, this may have the reasons below. “target processor in reset” is just a follow-up error message.•Open the AREA.view window to display all error messages.•If the target has no power or the debug cable is not connected to the target, this results in the error message “target power fail”.•Did you select the correct core type with SYStem.CPU <cpu>?•There is an issue with the SWD interface. Maybe there is the need to set jumpers on the target to connect the correct signals to the SWD connector.•The target is in an unrecoverable state. Re-power your target and try again.•The core is kept in reset.•There is a watchdog which needs to be deactivated.Error Message EventReason Target power fail SYStem.Mode.Up See below.Target processor in resetSYStem.DownSee below.Target is not connected or the SWD Interface is returning an error.SYStem.Mode.Up SYStem.Mode.GoThe debugger expects to receive a confirmation for each command sent to the target. An error occurs in case the confirmation is not received.The number of<number> accessed bytes in memory is not a multiple of the access <size> bytes.No special eventInternal error, please consult your Lauterbach representative.Memory <address> is not aligned to access <size>.No special eventInternal error, please consult your Lauterbach representative.Invalid memory access size: <size> bytes (@ <address>)No special eventInternal error, please consult your Lauterbach representative.Memory access timeout: Reading from <address>No special eventCorrupted JTAG connection. Check JTAG hardware and settings.FAQPlease refer to https:///kb.STM8 specific SYStem SettingsSYStem.CPUSelect the used CPUDefault: STM8xxx.Selects the processor type. All of the STM8 MCU cores with SWD Interface are supported.SYStem.MemAccessReal-time memory access (non-intrusive)Default: Denied. Format:SYStem.CPU <cpu><cpu>:STM8S005K6 | STM8S003K3 | STM8S001J3 | …Format:SYStem.MemAccess Enable | Denied | StopAndGoEnableCPU (deprecated)This option is not available at the moment.Denied Real-time memory access during program execution to target is disabled.StopAndGoTemporarily halts the core(s) to perform the memory access. Each stop takes some time depending on the speed of the JT AG port, the number of the assigned cores, and the operations that should be performed.For more information, see below.SYStem.ModeEstablish the communication with the targetDefault: Down. SYStem.LOCKLock and tristate the debug portDefault: OFF .If the system is locked, no access to the debug port will be performed by the debugger. While locked, the debug connector of the debugger is tristated. The main intention of the SYStem.LOCK command is to give debug access to another tool.Format:SYStem.Mode <mode>SYStem.Down (alias for SYStem.Mode Down)SYStem.Up (alias for SYStem.Mode Up)<mode>:Down Go UpNoDebugDown Disables the debugger. The state of the CPU remains unchanged. Go Resets the target and starts execution.Up Resets the target and stops the CPU at the reset vector.NoDebugThe debug adapter gets tristated.The state of the CPU remains unchanged. Debug mode is not active.In this mode the target behaves as if the debugger is not connected.Attach StandByNot available.Format:SYStem.LOCK [ON | OFF ]SYStem.Option.IMASKASM Disable interrupts while single steppingFormat:SYStem.Option.IMASKASM [ON | OFF]Default: OFF.If enabled, the interrupt enable flag of the EFLAGS register will be cleared during assembler single-step operations. After the single step, the interrupt enable flag is restored to the value it had before the step. It is turned on to make sure that no interrupt routine is serviced between Break and Go states. SYStem.Option.IMASKHLL Disable interrupts while HLL single steppingFormat:SYStem.Option.IMASKHLL [ON | OFF]Default: OFF.If enabled, the interrupt enable flag of the EFLAGS register will be cleared during HLL single-stepoperations. After the single step, the interrupt enable flag is restored to the value it had before the step.CPU specific TrOnchip CommandsThe TrOnchip command group is not available for the STM8 debugger.BreakpointsSoftware breakpointsThe Microchip STM8 architecture does not support software breakpoints.On-chip breakpoints for instructionsThe STM8 MCUs support a total of two on-chip breakpoint registers which can be used as programbreakpoints to stop and debug the program which executes always in the Flash.On-chip breakpoints for dataData breakpoints are used to analyze the read and write accesses to global variables. The data breakpoints can be triggered with respect to the data address or access type, i.e. read, write or both, or the data value.The two instruction breakpoints of STM8 MCUs can be used as data breakpointsIn case of an on-chip data breakpoint, every load and store instruction is checked with respect to thebreakpoint address, access type and the value. The data breakpoints are especially useful to find out whena global variable is written with a certain value. It is not possible to implement a similar breakpoint in softwarewithout affecting the real-time behavior of the system. Since the load and store instructions work on RAM, data breakpoints always point to addresses on RAM.Memory ClassesThe following memory access classes are available:Access Class DescriptionD DataP ProgramT o access a memory class, write the class in front of the address. For example, use D to access the data memory.Data.dump D:0x00The memory class P is used to denote the Flash memory.Data.dump P:0x00Since the STM8 architecture uses a Unified Memory Architecture, the following two examples return the same results.Data.dump D:0x100Data.dump P:0x100Target AdaptionConnector Type and PinoutDebug CablePin Signal1VDD2PD13GND4RESET[PA0]。
STM8单片机入门V2.6-公务员考试1STM8微控制器简介1.1STM8S系列1.2STM8L系列1.3STM8A系列1.4STM8微控制器网站2STM8集成开发环境简介2.1ST*****2.2*****.3*****8程序设计3.1STVD汇编语言程序设计3.2COSMIC C 语言程序设计3.3IAR C语言程序设计4STM8应用例程4.1STM8S应用例程4.2STM8L和STM8A应用例程5STM8开发工具5.1ST-LINK5.2STX-*****TM8 EMC设计注意事项STM8单片机入门王志杰2010-08-191STM8微控制器简介1.1STM8S系列1.2STM8L系列1.3STM8A系列1.4STM8微控制器网站2STM8集成开发环境简介2.1ST*****2.2*****.3*****8程序设计3.1STVD汇编语言程序设计3.2COSMIC C 语言程序设计3.3IAR C语言程序设计4STM8应用例程4.1STM8S应用例程4.2STM8L和STM8A应用例程5STM8开发工具5.1ST-LINK5.2STX-*****TM8 EMC设计注意事项- 2 -目录1 STM8微控制器简介 (3)1.1 STM8S系列 (3)1.2 STM8L系列 (5)1.3 STM8A系列 (7)1.4 STM8微控制器网站............................................................................................................92 STM8集成开发环境简介. (11)2.1 ST***** (11)2.2 COSMIC (1)32.3 IAR (16)3 STM8程序设计 (18)3.1 STVD汇编语言程序设计 (18)3.2 COSMIC C语言程序设计 (31)3.3 IAR C语言程序设计.........................................................................................................454 STM8应用例程.. (61)4.1 STM8S应用例程 (61)4.2 STM8L和STM8A应用例程.............................................................................................735 STM8开发工具.. (73)5.1 ST-LINK (73)5.2 STX-RLINK (746)STM8 EMC设计注意事项 (76)1STM8微控制器简介1.1STM8S系列1.2STM8L系列1.3STM8A系列1.4STM8微控制器网站2STM8集成开发环境简介2.1ST*****2.2*****.3*****8程序设计3.1STVD汇编语言程序设计3.2COSMIC C 语言程序设计3.3IAR C语言程序设计4STM8应用例程4.1STM8S应用例程4.2STM8L和STM8A应用例程5STM8开发工具5.1ST-LINK5.2STX-*****TM8 EMC设计注意事项1STM8微控制器简介1.1STM8S系列2009年3月4日,意法半导体发布了针对工业应用和消费电子开发的微控制器STM8S系列产品。
STM8S_汇编不知是心血来潮,还是其它因素,突然又想起玩汇编语言了。
这几年也没少跟单片机打交道,包括51系列,430系列,ARM系列,但都是用C语言来开发。
不过由于使用C语言,实际上对这些CPU的了解还是不够深刻,当然除了51之外,因为那是我多年前曾经用汇编开发过的芯片。
尽管当今C语言已经在嵌入式产品的开发过程中成为主流,但我个人依然认为,要想真正了解CPU的特点,还得用汇编语言。
不知道这种观点是对还是错,也许是因为自己从硬件做起,写过机器码,用汇编语言做过优化,因此对汇编语音有一种特殊的偏爱。
51系列的芯片用多了,感觉有时写起程序来不太方便,因此总想寻找一些其它的8位单片机玩玩,正好手头有一个ST的三合一开发板,那是09年参加ST研讨会上买的,一直躺在那里,与其躺在那里,不如拿出来玩玩。
这几年,ST在国内推广STM32,力度不小,不过我一直没有用过,只是初步地看看资料。
原因在于在32位单片机方面,我一直在用Luminary公司的LM3S1138,感觉不错,一直都很顺利。
09年ST举办的研讨会上,ST除了介绍STM32外,也介绍了STM8,当时听了以后,觉得还行。
尤其是会上的低功耗演示给我留下了很深刻的印象。
基于这些,我决定好好地玩一下STM8芯片,并将玩的结果拿出来与大家共享。
STM8与汇编语言(2)第一次打开STM8的手册时发现,CPU中的寄存器只有6个,即A、X、Y、SP、PC 和CC。
这几个寄存器,看上去特象早年苹果机使用的微处理器6502。
在眼下都是多寄存器的RISC潮流下,不知ST推出的这种CPU架构有什么意图?这样的芯片能否与Microchip 或者Atmel的RISC结构的MCU竞争呢?在此我无意做评论,我只想了解这颗芯片。
通过仔细研究,我发现由于STM8采用了32位宽度的程序存储器结构,使得大部分的指令都能在一个周期内取出,并且采用了哈佛结构和流水线,相当多的指令也都是单周期完成的。
STM8单片机入门王志杰2010-08-19- 2 -目 录1 STM8微控制器简介 (3)1.1 STM8S系列 (3)1.2 STM8L系列 (5)1.3 STM8A系列 (7)1.4 STM8微控制器网站 (9)2 STM8集成开发环境简介 (11)2.1 ST TOOLSET (11)2.2 COSMIC (13)2.3 IAR (16)3 STM8程序设计 (18)3.1 STVD汇编语言程序设计 (18)3.2 COSMIC C语言程序设计 (31)3.3 IAR C语言程序设计 (45)4 STM8应用例程 (61)4.1 STM8S应用例程 (61)4.2 STM8L和STM8A应用例程 (73)5 STM8开发工具 (73)5.1 ST-LINK (73)5.2 STX-RLINK (74)6 STM8 EMC设计注意事项 (76)1STM8微控制器简介1.1STM8S系列2009年3月4日,意法半导体发布了针对工业应用和消费电子开发的微控制器STM8S 系列产品。
STM8S平台打造8位微控制器的全新世代,高达20 MIPS的CPU性能和2.95-5.5V 的电压范围,有助于现有的8位系统向电压更低的电源过渡。
新产品嵌入的130nm非易失性存储器是当前8位微控制器中最先进的存储技术之一,并提供真正的EEPROM数据写入操作,可达30万次擦写极限。
在家用电器、加热通风空调系统、工业自动化、电动工具、个人护理设备和电源控制管理系统等各种产品设备中,新产品配备的丰富外设可支持精确控制和监视功能。
功能包括10位模数转换器,最多有16条通道,转换用时小于3微秒;先进的16位控制定时器可用于马达控制、捕获/比较和PWM功能。
其它外设包括一个CAN2.0B接口、两个U(S)ART接口、一个I2C端口、一个SPI端口。
STM8S平台的外设定义与STM32系列32位微控制器相同。
外设共用性有助于提高不同产品间的兼容性,让设计灵活有弹性。
应用代码可移植到STM32平台上,获得更高的性能。
除设计灵活外,STM8S的组件和封装在引脚上完全兼容,让开发人员得到更大的自由空间,以便优化引脚数量和外设性能。
引脚兼容还有益于平台化设计决策,产品平台化可节省上市时间,简化产品升级过程。
STM8S主要特点:⏹速度达20 M IP S的高性能内核⏹抗干扰能力强,品质安全可靠⏹领先的130纳米制造工艺,优异的性价比⏹程序空间从4K到128K,芯片选择从20脚到80脚,宽范围产品系列⏹系统成本低,内嵌EE PRO M和高精度RC振荡器⏹开发容易,拥有本地化工具支持STM8S主要应用:⏹汽车电子:传感器、致动器、安全系统微控制器、DC马达、车身控制、汽车收音机、LIN节点、加热/通风空调⏹工业应用:家电、家庭自动化、马达控制、空调、感应、计量仪表、不间断电源、安全⏹消费电子:电源、小家电、音响、玩具、销售点终端机、前面板、电视、监视设备⏹医疗设备:个人护理产品、健身器材、便携护理设备、医院护理设备、血压测量、血糖测量、监控、紧急求助STM8S产品分为“A cce ss L ine(入门级)”和“P e r o f o r mance L ine(增强型)”,如下图所示。
1.2STM8L系列2009年9月15日,意法半导体宣布,首批整合其高性能8位架构和最近发布的超低功耗创新技术的8位微控制器开始量产。
以节省运行和待机功耗为特色,STM8L系列下设三个产品线,共计26款产品,涵盖多种高性能和多功能应用。
设计工程师利用全新的STM8L系列可提高终端产品的性能和功能,同时还能满足以市场为导向的需求,例如,终端用户对节能环保产品的需求,便携设备、各种医疗设备、工业设备、电子计量设备、感应或安保设备对电池使用周期的要求。
设计人员将选择STM8L这类超低功耗的微控制器,以符合低功耗产品设计标准,如“能源之星”、I E A的“1W节能计划”或欧盟的E uP法令。
这三条STM8L产品线都基于意法半导体的超低功耗技术平台,这个平台采用意法半导体独有的超低泄漏电流优化的130nm制程。
独一无二的技术优势包括在1.65V到3.6V的整个电源电压范围内达到CPU最大工作频率,发挥CPU的全部性能。
此外,由于采用一个片上稳压器,功耗与Vdd电压无关,所以具有更高的设计灵活性,并有助于简化产品设计。
其它创新特性包括低功耗嵌入式非易失性存储器和多个电源管理模式,包括5.4µA低功耗运行模式、3.3µA低功耗待机模式、1µA主动停止模式(实时时钟运行)和350n A停止模式。
STM8L可以在4µs内从停止模式唤醒,支持频繁使用最低功耗模式。
低功耗外设,包括小于1µA的实时时钟和自动唤醒(AWU)模块,有助于进一步节省电能。
总之,这个平台可将动态电流消耗降到150µA/M H z。
STM8L主要特点:⏹STM8 16 M H z CPU⏹内置4-32 KB闪存,多达2KB S RA M⏹三个系列:跨系列的引脚对引脚兼容、软件相互兼容、外设相互兼容⏹电源电压:1.8 V-3.6 V(断电时,最低1.65V)⏹超低功耗模式:保持S RA M内容时,最低功耗350n A⏹运行模式动态功耗低至150μA/M H z⏹最先进的数字和模拟外设接口⏹工作温度范围:-40°C到+85°C,可高达125°C⏹免费的触感固件库STM8L主要应用:⏹便携医疗设备⏹玩具和游戏⏹公路收费⏹电池供电设备⏹个人保健产品⏹保安传感器STM8L产品分为三大子系列,STM8L101基本型,STM8L151增强型和STM8L152带LCD驱动的增强型,如下图所示。
1.3STM8A系列意法半导体公司推出的STM8A是一款专门用于满足汽车应用的特殊需求的8-位Flash 微控制器。
这些模块化产品提供了真数据EEPROM以及软件和引脚兼容性,适用的程序存储器尺寸范围为8KB至256KB和20至128-引脚封装。
所有器件的工作电压均为3V至5V,并且其工作温度扩展到了145°C。
STM8A主要特点:⏹集成式真数据EEPROM⏹16MHz和128kHz RC振荡器⏹高效的STM8内核:在16MHz的频率下可以实现10MIPS的性能⏹应用安全性高:独立的看门狗定时器、时钟安全系统⏹所有产品均具有LIN 2.0和自同步功能⏹电源电压:3.3V和5V⏹最高工作温度:145 °CSTM8A主要应用:⏹激励器,车体控制器,传感器,DC电机控制,安全微控制器,LIN节点,汽车无线电,HV ACSTM8A产品线如下图所示:1.4STM8微控制器网站ST官方所发布的全部微控制器产品信息,尽在 htt p://www.s /mc u。
点击相应的产品系列,则可进入其产品主页。
在每个产品的主页上一般都会有一个超连接,点击超连接可找到其系列的全部的官方资料。
例如STM8S系列,在进入STM8S主页后,点击如下的超连接可找到全部的资料和文件:Documents and Files for STM8S family也可以通过以下地址直接进入相关的STM8系列主要网址。
⏹STM8A汽车电子产品系列/stonline/products/families/automotive/microcontrollers/stm8a.htm⏹STM8L超低功耗产品系列:/mcu/familiesdocs-120.html⏹STM8S标准产品系列:/mcu/familiesdocs-113.html2STM8集成开发环境简介2.1ST TOOLSETST TOOLSET是ST提供的微控制器开发套件。
ST TOOLSET包括两部分软件:ST Visual Develop (STVD)和ST Visual Programmer (STVP)。
支持STM8全系列的开发。
ST Visual Develop (STVD)是ST微控制器的集成开发环境。
主要是面向ST的8位微控制器产品。
STVD可以创建,调试以及烧录ST微控制器。
STVD提供了一个免费的汇编编译器。
用户可使用汇编语言直接在此环境中(STVD)编写汇编程序。
ST Visual Programmer (STVP)是ST提供的用于生产或批量的专用烧录软件。
ST Toolset可从ST的网站上下载:/mcu。
或者尝试直接从下面的地址直接下载:/stonline/products/support/micro/files/sttoolset.exeST TOOLSET在下载后,运行其安装程序,如下图所示:在软件安装完成之后,可从开始菜单来启动,“开始>ST Visual Develop”,如下图所示:ST TOOLSET 启动后,其界面如下图所示:2.2COSMICCosmic 公司(Cosmic Software Inc.)的Cosmic C编译器(Cosmic C compiler)及全套嵌入开发工具支持STM8系列产品的开发。
Cosmic产品包括C 交叉编译器、汇编、连接器、ANSI库、仿真器、硬件调试器和易于使用的集成开发环境(IDEA)。
Cosmic公司提供了16K和32K代码大小限制的全功能的免费软件。
此软件可从 免费下载。
或者尝试直接从下面地址下载:/cxstm8_ 16k.exehttp://www. /cxstm8_32k.exe在软件下载完成之后,运行安装程序,出现如下界面,(按照其提示安装即可):COSMIC公司为用户提供了一个集成的开发环境,其运行后界面如下图所示:注:建议用户将COSMIC C编译器外挂于ST TOOLSET中,使用ST提供的集成开发环境STVD进行产品的开发,后面说明其用法。
COSMIC C编译器在安装过程中,出现下图提示。
提示创建桌面图标和申请软件使用协议。
可以选择“Register your license”来申请协议,选择“Next”。
根据要求填写下面的注册信息,要用英文填写完整。
选择”Register by Email”,此时会启动计算机系统默认的邮件软件,发送申请协议的邮件。
用户会受到一个协议文件。
将其拷贝到安装目录下的license目录下即可,默认目录为C:\Program Files\COSMIC\CXSTM8_16K\license。
注意:1)在填写时,注意在Country中一定要注明国家或地区,如China。
2)建议用英文书写。
3)默认的邮件程序,可通过Internet Explorer的菜单Tool -> ‘Internet Option…’来设置如果在安装过程中没有申请协议,也可以在安装目录下,找到C:\Program Files\COSMIC\CXSTM8_16K目录(默认安装目录)下面的lmreg16k.exe文件,运行也可以进行注册取得协议文件。