STM8教程-第六章 STM8S207 的外部电路

合集下载

STM8S208开发板原理图

STM8S208开发板原理图

STM8S208开发板原理图首先,STM8S208开发板的原理图包括主控芯片STM8S208CBT6、时钟电路、复位电路、电源电路、外设接口等。

主控芯片STM8S208CBT6是STM8系列微控制器的核心部件,具有128KB闪存和2KBRAM,还有多个IO口以及各种外设接口。

时钟电路是STM8S208开发板的关键部件之一、它包括晶振、电容和电阻等元件,用于提供稳定的时钟信号。

在原理图中,晶振通常是通过一个谐振电路与主控芯片相连,从而提供准确可靠的时钟信号。

此外,还有电容和电阻用于调整晶振的频率和稳定性。

复位电路用于保证主控芯片在上电或复位时能够正常工作。

它由一个复位按钮和一个复位电路组成。

复位按钮用于手动复位芯片,而复位电路则在上电或复位时将主控芯片的复位引脚拉低,从而进行复位操作。

电源电路是STM8S208开发板的供电系统,包括直流电源输入、稳压电路和电源滤波电路等。

直流电源输入一般通过电源插座或USB接口,用于将外部电源接入开发板。

稳压电路用于将输入的电压稳定为主控芯片和其他电路所需的工作电压。

电源滤波电路则用于去除输入电源中的噪声和干扰,以保证电路的稳定工作。

外设接口是STM8S208开发板的扩展接口,用于连接各种外部设备和元件。

包括通用输入输出口(GPIO)、串行接口(UART、SPI、I2C)、模拟输入输出口(ADC、DAC)以及定时器和中断控制器等。

这些接口可以连接传感器、执行器、显示器等外部设备,实现与外界的数据交互和控制。

总之,STM8S208开发板的原理图是一个完整的电路设计,包括主控芯片、时钟电路、复位电路、电源电路和外设接口等。

它提供了硬件支持,使得开发者可以方便地进行软件开发和系统调试,并快速实现各种应用需求。

STM8单片机视频教程 第六讲

STM8单片机视频教程 第六讲
STM8单片机开发板视频教程
第六讲 出品:顺哥电子设计工作室 邮箱:sgqrs_lab@ QQ :1484495076 主讲人 :姚顺 场外指导:姬厚琛
目的: 通过本次课程希望大家能够熟悉串口通信的
原理,并且可以熟练地使用STM8S系列的单片机进 行收发通信
内容: 1 串口通信协议的讲解 2 STM8单片机的串口相关寄存器了解 3 串口波特率的计算 4 编写串口和PC机通信
串行通信:使用一条数据线,将数据一位一位地依
次传输,每一位数据占据一个固定的时间长度。其只 需要少数几条线就可以在系统间交换信息,特别适用 于计算机与计算机、计算机与外设之间的远距离通信。 例如 :串口 ,IIC,SPI
D0 D1 D2 D3 D4 D5 D6 D7
发送
接收
并行通信:一组数据的各数据位在多条线上同时
被传输 。 例如 1602,12864
D0 D1 D2
发 送 方
D3 D0~D7 D4 D5 D6 D7 D0~D7
接 收 方
串行异步通信每一个字符要用到起始位和停止位作为 字符开始和结束的标志
同步通信不像异步通信那样,靠起始位在每个字符数据开 始时使发送和接收同步,而是通过同步字符在每个数据 块传送开始时使收发双方同步
想和PC机通信需要将串口逻辑电平转变为RS232通信逻辑
RS232个人计算机上的通讯接口之一,由电子工业协 会(Electronic Industries Association,EIA) 所制定的 异步传输标准接口。通常 RS-232 接口以9个引脚 (DB-9) 或是25个引脚 (DB-25) 的型态出现,
STM8S系列单片机进行串口初始化顺序 1 时钟的配置 2 串口的工作模式选择 3 中断的配置 4 校验位,停止位的配置 5 断开帧,空闲帧的设置 6 波特率的设置 7 最后开启UART

ST单片机STM8S开发入门教程

ST单片机STM8S开发入门教程

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开发板原理图

STM8开发板原理图

D1 LED1
D2 LED2
按键3
C14 GND 104
第四版原理图
PC3 OSI J1 4 3 2 1 VDD SWIM GND RST C2 22 16M Y1 GND C3 22 OSO
PC4
PD2
B
仿真器接口
SWIM
HSE
LED
KEY
FLASH
B
J2 VDD R1 1032 NRST J4 C4 104 GND VDD S4 3 2 1 CON3 5VIN
PD7/TLI/T1_C4 PD6/UART1_RX PD5/UART1_TX PD4/BEEP/T2_C1 PD3/T2_C2/ADC_ETR PD2/T2_C3 PD1/SWIM PD0/_T1_BKIN PC7/SPI_MISO PC6/SPI_MOSI PC5/SPI_SCK PC4/T1_C4/CCO PC3/T1_C3 PC2/T1_C2 PC1/T1_C1/UART1_CK PE5/SPI_NSS
跳线
C10 104 GND
MINIUSB接口 XI Y2 XO
电源选择跳线
蜂鸣器
LS1
VDD
R3 103
多用途液晶接口
光敏电阻
Q1 PNP
OLED直接插/段码液晶电路板上靠右侧插
GND Title
D
双跳线
USB转TTL
1 2 3
蜂鸣器
4
ADC
5
B Date: File:
32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17
PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PE5

STM8教程-第七章-STM8S207-GPIO模块及其应用

STM8教程-第七章-STM8S207-GPIO模块及其应用

第七章STM8S207 GPIO模块及其应用本章终于开始STM8S207 的例程编写了,通过前面章节的学习,相信对STM8S207 已经有了一定的认识。

本章从STM8S207 最简单的IO 口模块开始STM8S207 的编程。

7.1 GPIO 简介STM8S207 内部有非常丰富的输入、输出端口资源,同时也集成了多种功能模块,其输入、输出引脚大多为复用引脚。

STM8S207 单片机的IO 口包括PA、PB、PC、PD、PE、PF、PG、PI 等52 个IO 口通用输入/输出口用于芯片和外部进行数据传输。

一个IO 端口可以包括多达8 个引脚,每个引脚可以被独立编程作为数字输入或者数字输出口。

另外部分口还可能会有如模拟输入,外部中断,片上外设的输入/输出等复用功能。

但是在同一时刻仅有一个复用功能可以映射到引脚上。

复用功能的映射是通过选项字节控制的。

请参考数据手册关于选项字节的描述。

每个IO 口都有 5 个对应的寄存器,IO 的工作方式也由这 5 个寄存器控制,它们分别为:1、数据方向寄存器2、配置寄存器13、配置寄存器24、输出数据寄存器5、输入数据寄存器一个I/O 口工作在输入还是输出是取决于该口的数据方向寄存器的状态。

7.1.1 GPIO 主要功能1、端口的各个位可以被单独配置2、可选择的输入模式:浮动输入和带上拉输入3、可选择的输出模式:推挽式输出和开漏输出4、数据输入和输出采用独立的寄存器5、外部中断可以单独使能和关闭6、输出摆率控制用以减少EMC 噪声7、片上外设的I/O 功能复用8、当作为模拟输入时可以关闭输入施密特触发器来降低功耗9、在数据输出锁存时支持读-修改-写10、输入兼容5V 电压11、I/O 口工作电压范围为1.6 V 到VDDIOmaxGPIO 模块框图7.2 IO 口的配置和使用每一个端口都有一个输出数据寄存器(ODR),一个引脚输入寄存器(IDR)和一个数据方向寄存器(DDR)。

IAR FOR STM8例程

IAR FOR STM8例程

IAR+STM8——EXTI外部中断控制寄存器2013-03-21 23:23:15| 分类:STM8|举报|字号订阅这块三合一的开发板上有且只有一个按键,没办法,就拿这唯一的按键来用吧。

吸取前面UART3的教训,先看开发板的原理图吧。

这个按键被接到了STM8S207SB的PD7上,已做了上拉处理。

为了简单明了,还是点LED1吧。

按一下LED1亮,再按一下LED1灭。

好了,写程序吧。

#i nclude <iostm8s207sb.h>#define LED1_FLASH PD_ODR_ODR3 = !PD_ODR_ODR3 // 开发板上的LED1接在PD3上void GPIO_init(void){PD_DDR = 0x08; // 配置PD端口的方向寄存器PD3输出PD_CR1 = 0x08; // 设置PD3为推挽输出PD_CR2 = 0x80; // 使能PD7外部中断}void EXTI_init(void){EXTI_CR1 = 0x80; // PD口下降沿触发中断}#pragma vector=0x02 // 这里很关键!看下面说明。

__interrupt void EXTI_PD7_TLI(void){LED1_FLASH;}void init_devices(void){asm("sim"); // 关全局中断GPIO_init();EXTI_init();asm("rim"); // 开全局中断}void main( void ){init_devices();// 主循环里没有程序需要执行while(1);}这里着重要说明的一点是PD7的外部中断程序。

看了一下芯片手册,PD口外部中断EXTI3的中断向量号是6,想当然,又是想当然,按IAR的规矩中断向量要加2,就这样写#pragma vector=0x08,结果就是按下按键,程序没响应了,一直在中断里不出来。

第6章 STM8中断控制系统

第6章  STM8中断控制系统
11(最高),因此没有软件优先级寄存器位与之对应。一旦这两 个中断有效,CPU响应后CC寄存器内的中断优先级标志I1、 I0位自动置1。
正因如此,ITC_SPR1寄存器的b1、b0对应TLI,即0号 中断,而不是复位中断RESET;同理,TC_SPR1寄存器的 b3、b2对应AWU,即1号中断,而不是软件中断TRAP; ITC_SPR8寄存器的b3、b2对应29号中断。即ITC_SPR8~ ITC_SPR1定义了30个中断源(编号为0~29,其中25~29中
向量地址 8000h 8004h 8008h 800Ch 8010h 8014h 8018h 801Ch 8020h 8024h 8028h 802Ch 8030h 8034h 8038h 803Ch 8040h 8044h 8048h 804Ch 8050h 8054h 8058h 805Ch 8060h 8064h 8068h 806Ch到 807Ch
● 不可屏蔽的中断:
RESET,TLI 和 TRAP

可屏蔽中断: 外部中源 不可屏蔽中断不会考虑CC寄存器的I1和I0的状态。仅仅当TRAP 中断发生时候将PC,X, Y, A 和 CC 寄存器的内容压栈。相应的向量载入到PC寄存 器中同时置位I1和I0位禁止中断(3级优先级)。 STM8S支持32个中断,中断服务程序入口地址称为中断向量,放在 8000H~807FH之间。每个中断向量占4个字节,共4x32(128字节)。中断服 务程序可放在16MB任一存储区。
断号保留,没有定义)的优先级,而ITC_SPR8寄存器的高4
位没有定义。
(4) 优先级10最低,分配给主程序使用。因此,不允许
将中断优先级设为10。如果将某一个中断优先级设为10, 为使对应中断请求得到响应,STM8 CPU将保留该中断源 先前的优先级。换句话说,当前中断优先级设置操作无效。 (5) 当两个或两个以上可屏蔽中断源具有相同的软件优 先级时,硬件查询顺序如表6-1所示,即1号中断(自动唤醒 中断AWU)优先级最高,CLK中断次之,而24号中断

这一节,我们将向大家介绍如何使用 STM8 的外部输入中断

这一节,我们将向大家介绍如何使用 STM8 的外部输入中断
编译下载后,通过不同的按键可以实现 LED 的开关,不过干扰很大。这是因为速度很快而 且没有延时滤波而产生的,我们的实验只是说明外部中断的使用
我们使用的是 D 口,所以只需要设置与 D 口有关的位,EXTI_CR1 中的第 6、7 位是设置 PD 口的中断方式。如下图所示:
我们的实验是设置为仅下降沿触发,所以在我们只需要设置为 EXTI_CR1 = 0x80 就可以了。
下面是软件代码的编写
#include "iostm8s207rb.h" #define LED1_FLASH PD_ODR_ODR0 #define LED2_FLASH PD_ODR_ODR1 #define LED3_FLASH PD_ODR_ODR2 #define LED4_FLASH PD_ODR_ODR3
下面我们将逐步讲解与外部中断有关的寄存器 1)CR1,CR2 这两个寄存器相信大家都很熟悉了,我们前面与 IO 口有关的操作都要到这两个寄存器, 之前我们设置的一般都是推挽式输出以及上拉式输入 在这里我们设置成中断上拉输入,因为我们的硬件上没有外接上拉,需要内部上拉,设 置对应位的寄存器值是 CR1 = 1 以及 CR2 = 0 2)EXTI_CR1
void main( void ) { init_devices(); // 主循环里没有程序需要执行 while(1); }
#pragma vector=0x02 // 这里很关键!看说明。 __interrupt void EXTI_PD7_TLI(void) { LED4_FLASH; }
#pragma vector=0x08 __interrupt void EXTI_PD(void) { if(PD_IDR_IDR5 == 0) //key1按下 { if(PD_IDR_IDR6 == 0) //key1 key2同时按下 LED3_FLASH; else LED1_FLASH; } else LED2_FLASH; }

STM8S单片机外部中断唤醒

STM8S单片机外部中断唤醒

STM8S单片机外部中断唤醒
STM8S单片机外部中断唤醒
一、STM8S 外部中断进行唤醒
先了解一下STM8S的中断资源
再看看STM8S的中断管理。

STM8S采用软件优先级和硬件优先级来控制一个中断的响应,先比较软件优先级只有当软件优先级一致时才会比较硬件优先级,由于硬件优先级具有唯一性,这样便保证了某一时刻定会只有一个中断被处理。

要使用外部中断,只需简单的配置一下EXTI_CR1寄存器,并将主程序main的软件优先级置为0即可。

默认情况下自复位开始,主程序的软件优先级被设置为3,处于最高软件优先级,仅有TRAP,TLI,RESET中断能够打断,其余的中断都是不会被响应的。

为了防止中断过程中被别的优先级高的中断所打断,可以将当前优先级置为最高3级。

代码如下:
main.c代码
//EXTI_CR1|=EXTI_CR1_PBIS_R;//PB5TRINT高电平触发
EXTI_CR1|=EXTI_CR1_PCIS_R;//PC3上升沿触发
//#defineEXTI_CR1_PCIS_R(1《《4)
RIM;//开全局中断,必须要有这句,否则只会响应不可屏蔽中断//#defineHALT_asm(“halt”)
//#defineRIM_asm(“rim”)
//#defineSIM_asm(“sim”)
GPIO_Init(GPIOC,TRINT,GPIO_MODE_IN_PU_IT);//使能对应的IO口中断
stm8s_it.c代码
//收发中断(PC3)BJ8F101。

STM8教程-第七章STM8S207GPIO模块及其应用

STM8教程-第七章STM8S207GPIO模块及其应用

STM8教程-第七章STM8S207GPIO模块及其应用第七章STM8S207 GPIO模块及其应用本章终于开始STM8S207 的例程编写了,通过前面章节的学习,相信对STM8S207 已经有了一定的认识。

本章从STM8S207 最简单的IO 口模块开始STM8S207 的编程。

7.1 GPIO 简介STM8S207 内部有非常丰富的输入、输出端口资源,同时也集成了多种功能模块,其输入、输出引脚大多为复用引脚。

STM8S207 单片机的IO 口包括PA、PB、PC、PD、PE、PF、PG、PI 等52 个IO 口通用输入/输出口用于芯片和外部进行数据传输。

一个IO 端口可以包括多达8 个引脚,每个引脚可以被独立编程作为数字输入或者数字输出口。

另外部分口还可能会有如模拟输入,外部中断,片上外设的输入/输出等复用功能。

但是在同一时刻仅有一个复用功能可以映射到引脚上。

复用功能的映射是通过选项字节控制的。

请参考数据手册关于选项字节的描述。

每个IO 口都有 5 个对应的寄存器,IO 的工作方式也由这 5 个寄存器控制,它们分别为:1、数据方向寄存器2、配置寄存器13、配置寄存器24、输出数据寄存器5、输入数据寄存器一个I/O 口工作在输入还是输出是取决于该口的数据方向寄存器的状态。

7.1.1 GPIO 主要功能1、端口的各个位可以被单独配置2、可选择的输入模式:浮动输入和带上拉输入3、可选择的输出模式:推挽式输出和开漏输出4、数据输入和输出采用独立的寄存器5、外部中断可以单独使能和关闭6、输出摆率控制用以减少EMC 噪声7、片上外设的I/O 功能复用8、当作为模拟输入时可以关闭输入施密特触发器来降低功耗9、在数据输出锁存时支持读-修改-写10、输入兼容5V 电压11、I/O 口工作电压范围为1.6 V 到VDDIOmaxGPIO 模块框图7.2 IO 口的配置和使用每一个端口都有一个输出数据寄存器(ODR),一个引脚输入寄存器(IDR)和一个数据方向寄存器(DDR)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第六章STM8S207 的外部电路
本章主要介绍STM8S207 的硬件连接方法。

由于STM8S207 是LQFP 封装的,一般需要打样板。

一般两层板就会满足所需,STM8S207 几乎可以单片运行。

6.1 STM8S207 开发板电路
STM8S207 开发板实物图如下:
在STM8S207 自带丰富的外设下,添加了不少实在而有用的外设,特别之处是USB下载以及串口的功能。

可以实现程序代码的下载以及与PC 机的UART 通信。

6.1.1 晶振电路
STM8S207 可以选择三个时钟源,有内部高速RC 振荡器,提供16MHz 频率或者分频使用;内部RC 低速振荡器提供128KHz 频率方便低速外设时钟或者待机状态;外部晶振或者时钟驱动,最高可以高达24MHz。

为了显示出STM8S207 的最高性能,外部选择了24MHz 的无源晶振,方便程序选择时钟源。

6.1.2 复位电路
复位引脚NRST 内部集成了弱上拉电阻RPU,即可作为输入,也可作为开漏输出。

一个在复位引脚上宽度最小为500ns 的低电平脉冲即可产生一个外部复位。

对于复位的检测是异步进行的,因此即使MCU 处于停机(Halt)模式,也有可能进入复位状态。

复位引脚也可以作为开漏输出用于对外部设备进行复位。

无论内部复位源是什么,一旦复位,内部复位电路都会产生一个至少脉宽为20us 的复位脉冲。

当没有外部复位发生时,内部弱上拉电阻可保证复位引脚处于高电平。

为了保证STM8S207 更好的性能,所以在原理图设计的时候还是外接了上拉电阻,NRST 内部电路如下图所示:
我们采取的原理图为如下所示:
6.1.3 电源电路
STM8S207 开发板采用的是USB 供电,USB 可以提供500mA 的电流已经足够STM8S207 所有功能的实现。

在这里采用线性稳压芯片LM1117 3.3V,把USB 的供电分压为3.3V 供电给STM8S207 主控制芯片。

STM8 芯片有个特点是有4 组供电,分别是
●VDD/VSS:主电源(3V 到5.5V)
●VDDIO/VSSIO:I/O 口供电电源(3V 到5.5V)
●VDDA/VSSA:模拟部分供电电源
●VREF+/VREF-:ADC 参考电源
为了更好的性能和稳定性,这里采用了电感作为隔离,更好防止各个电源之间的干扰,提高稳定性。

6.1.4 UART 转USB
UART 可以直接采用Max232 等芯片,但是考虑到现在的电脑和手提主板都没有提供串口,所以直接转为USB 接口,方便使用。

这里使用了性价比最高的USB转串口芯片PL2303,方便用户下载程序和调试串口。

当使用为调试串口时,下载完用户程序后,复位后就可以直接使用串口调试功能了。

这是因为STM8 制定了大概1S 内没有ISP 下载时直接运行用户程序。

电路图如下所示:注意的是TXD 引脚要接上拉,这里为了方便观察数据流另加了一个LED 指示灯。

6.1.5 SWIM 接口
STM8S207 是支持SWIM 接口调试的,只是调试仿真器相对来说也是一个比较大的支
出,所以一般不建议购买,可以实现IAR 纯软件仿真
6.1.6 SD 卡电路
为了显示STM8S207 更优异的性能,配了SD 卡套接口,方便显示LCD 图片和文件操作。

具体电路如下所示:
6.1.7 LED
一块开发板不能缺少的功能就是LED,这是方便一开始使用学习的功能。

或者方便调试的时候用作指示灯。

这里配了 4 个独立LED,其中PD3 是TIM 的输出口,可以用LED3 演示PWM 调制LED 亮度的实验
6.1.8 按键
对于开发板来说,按键也是必不可少的,具体电路如下所示:
6.1.9 LCD
STM8S207 完全有能力驱动ili9320 控制TFT,这里配置了TFT 的接口。

6.1.10 AT24C02
不错,STM8S207 内部自带丰富的EEPROM,而且比AT24C02 更快的速度读写。

这里为什么配置AT24C02 是为了熟悉IIC 接口协议。

IIC 协议在单片机系统中非常常见,为此还是配置了AT24C02
电路如下:
6.1.11 W25X16
相对于AT24C02 来说,W25X16 是Flash 类型,更快的速度和更大的储存空间,而且更为重要的是这里使用了另一种非常常见的协议---SPI,所以在这里使用了W25X16 大容量Flash。

6.1.12 LM386 以及蜂鸣器
STM8S207 自带了一个BEEP 接口,可以根据程序选定1、2、4KHz 的频率输出。

而且BEEP 接口也是TIM 的一个通道,可以输出任意自定义的频率,从而输出音符。

为了更好的音色和更大的增益。

这里用了LM386 运放的选频放大电路,而且使用了无源蜂鸣器突出更好的音色。

6.1.13 光敏及热敏
STM8S207 拥有丰富的ADC 功能,所以这里使用了光敏电阻和热敏电阻分别作为AD 的输入而验证STM8S207 的ADC 功能。

6.2 本章小结
本章详细介绍了STM8S207 开发板的基本应用电路。

这些电路在嵌入式系统中经常使用到,读者也可以根据自己自身的实际需求,做必要的修改。

相关文档
最新文档