STM8 STM8S208MB寄存器

发布者:堕落的猫最新更新时间:2020-03-01 来源: eefocus关键字:STM8  STM8S208MB  寄存器 手机看文章 扫描二维码
随时随地手机看文章

引脚类型

在这里插入图片描述
在这里插入图片描述

寄存器

STM8S208MB寄存器采用LQFP80封装,此处的80就表示都会 有80个引脚,其中68个引脚是GPIO。按 GPIO 端口功能分类,依次是


PA 组GPIO端口有6个(PA1-PA6)

PB 组GPIO端口有8个(PB0-PB7)

PC 组GPIO端口有8个(PC0-PC7)

PD 组GPIO端口有8个(PD0-PD7)

PE 组GPIO端口有8个(PE0-PE7)

PF 组GPIO端口有6个(PF0,PF3-PF7)

PG 组GPIO端口有8个(PG0-PG7)

PH 组GPIO端口有8个(PH0-PH7)

PI 组GPIO端口有8个(PI0-PI7)

STM8S208MB 每一个端口寄存器位驱动相应的端口引脚。

每一个端口有 5 个寄存器

1.数据方向寄存器(DDR)

2.输出数据寄存器(ODR)

3.引脚输入寄存器(IDR)

4.控制寄存器(CR1)

5.控制寄存器(CR2)


用于对输入/输出进行配置。任何一个 I/O 引脚可以通过对 DDR,ODR,IDR,CR1 和 CR2 寄存器的相应位进行编程来配置。

在这里插入图片描述

端口 x 数据方向(Px_DDR)

在这里插入图片描述

DDR[7:0]:数据方向寄存器

这些可以通过软件置 1 或者置 0,选择引脚输入或者输出

0:输入模式

1:输出模式


端口 x 输出数据寄存器(Px_ODR)

在这里插入图片描述

ODR[7:0]:端口输出数据寄存器

在输出模式下,写入寄存器的数值通过锁存器加到相应的引脚上。读 ODR 寄存器,返回之前锁存的寄存器值。

在输入模式下,写入 ODR 的值将被锁存到寄存器中,但不会改变引脚状态。ODR 寄存器在复位后总是为 0。位操作指令(BSET, BRST) 可以用来设置 DR 寄存器来驱动相应的引脚,但不会影响到其他引脚。


端口 x 输入数据寄存器(Px_IDR)

在这里插入图片描述

IDR[7:0]:端口输入数据寄存器

不论引脚是输入还是输出模式,都可以通过该寄存器读入引脚状态值。该寄存器为只读寄存器。

0:逻辑低电平

1:逻辑高电平


端口 x 控制寄存器(Px_CR1)

在这里插入图片描述

C1[7:0]:控制寄存器位

这些位可通过软件置 1 或置 0,用来在输入或输出模式下选择不同的功能。在输入模式时(DDR=0):

0:浮空输入

1:带上拉电阻输入

在 输出模式时(DDR=1):

0:模拟开漏输出(不是真正的开漏输出)

1:推挽输出, 由 CR2 相应的位做输出摆率控制


端口 x 控制寄存器(Px_CR2)

在这里插入图片描述

C2[7:0]:控制寄存器位

相应的位通过软件置 1 或置 0,用来在输入或输出模式下选择不同的功能。在输入模式下,由 CR2 相应的位使能中断。如果该引脚无中断功能,则对该引脚无影响。

在输出模式下,置位将提高 IO 速度。此功能适用 O3 和 O4 输出类型。

在输入模式时(DDR=0):

0:禁止外部中断

1:使能外部中断

在输出模式时(DDR=1):

0:输出速度最大为 2MHZ

1:输出速度最大为


IO 口配置表

在这里插入图片描述

关键字:STM8  STM8S208MB  寄存器 引用地址:STM8 STM8S208MB寄存器

上一篇:STM8 IO外部中断设置问题
下一篇:STM8 GPIO 寄存器的理解

推荐阅读最新更新时间:2024-11-12 13:30

STM8学习笔记---定时器 TIM4功能实现
STM8单片机的TIM4和TIM6是8位基本定时器。 定时器功能如下: 基本定时器的功能比较简单,一般只用来实现定时功能。 基本定时器的寄存器也比较少。此处用定时器4测试,TIM4初始化代码如下: void Timer4_Init( void ) { TIM4_PSCR = 0x07; //2^7=128 分频 16M/128=125K TIM4_SR = ( ~0x01 ); //清除更新中断标志 TIM4_ARR = 125; //1ms TIM4_CNTR = 0; TIM4_CR1 |= 0x01;
[单片机]
<font color='red'>STM8</font>学习笔记---定时器 TIM4功能实现
STM8 PS2接口应用子程序
软件设计 /********************************************************************* 目 的: 建立PCF8563操作库 目标系统: 基于STM8单片机 应用软件: Cosmic CxSTM8 *********************************************************************/ #include ws_i2c.h void PS2_Init(void) { PRESS_DATA_DDR; SHIFT_DATA_DDR; IN_SDA; } void check(void
[单片机]
STM8自学笔记-002续 点亮LED
  点亮LED   点亮一个LED灯,应该是大多数单片机教程的第一步。这是最为基础的一步,也是最令人兴奋的一步,迈出这一小步就是迈入STM8大门的一大步。   通常,要对LED所在的单片机引脚(Pin)进行模式和电平设置,才能够点亮LED。先说C51和STM32上点亮LED的大致步骤,再来对比STM8上的步骤。   熟悉51单片机的童鞋应该很清楚,先用sbit映射一个Pin,然后让映射量置1来点亮该Pin连接的LED(拉电流驱动,与之相反的叫灌电流驱动)。也就是说,至少需要两行代码才能点亮LED。 sbit LED=P1^0; LED=1; //将P1.0口赋值 1,对外输出高电平   在STM32库函
[单片机]
ATmega128 MCU 控制和状态寄存器-MCUCSR
MCU 控制和状态寄存器提供了有关引起MCU 复位的复位源的信息。 在ATmega103 兼容模式下只有EXTRF 和PORF 存在。 • Bit 4 – JTRF: JTAG 复位标志 通过JTAG 指令AVR_RESET 可以使JTAG 复位寄存器置位,并引发MCU 复位,并使JTRF 置位。上电复位将使其清零,也可以通过写”0” 来清除。 • Bit 3 – WDRF: 看门狗复位标志 看门狗复位发生时置位。上电复位将使其清零,也可以通过写”0” 来清除。 • Bit 2 – BORF: 掉电检测复位标志 掉电检测复位发生时置位。上电复位将使其清零,也可以通过写”0” 来清除。 • Bit 1 – EXTRF: 外部复位
[单片机]
ATmega128 MCU 控制和状态<font color='red'>寄存器</font>-MCUCSR
STM8学习笔记——PWM模块
首先将管脚配置为推挽输出。下面以向上计数模式为例来讲述PWM产生的原理:TIMx开始向上计数,TIMx_CNT为计数值,计数一次加1,TIMx_ARR确定了计数的上限,达到上限后计数器从0开始重新计数,所以一次PWM频率就由TIMx_ARR来确定了,即计数器时钟*(TIMx_ARR-1),频率确定了,接下来就是占空比。占空比是由TIMx_CCRx来确定的,PWM模式1下当TIMx_CNT TIMx_CCRx,输出OCiREF有效电平,TIMx_CNT =TIMx_CCRx时,输出OCiREF无效电平,至于有效电平是0还是1,要设置TIMx_CCERx,这样产生了一个PWM波形,可以说配置非常灵活,当TIMx_CCRx为0时,占
[单片机]
STM32片上Flash内存映射、页面大小、寄存器映射
一、怎么看Flash大小 1.1 通过型号 型号会印在MCU表面,可以通过观察获得,我的是STM32F103RBT6(以下分析基于这个型号),对照下图的STM32产品命名,可知STM32F103RBT6的Flash是128KB。 () iframe id="iframe_0.15392923285253346" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://blog.chinaunix.net/attachment/2011
[单片机]
同一个STM8工程换目录位置后生成的HEX校验和不一致的问题
在使用IAR FOR STM8做003开发的时候,发现同一个工程,相同的文件,在拷贝到其他目录后,重新编译生成的HEX和原来的不一致,这是因为HEX文件尾部有目录的信息,所以换目录校验和会变,但功能没变,解决方法就是在stm8s_conf.h中注释掉 断言#define USE_FULL_ASSERT (1) ;改之前先去掉文件的只读属性,改完再加上只读,比较发现关掉能省出二百多字节
[单片机]
同一个<font color='red'>STM8</font>工程换目录位置后生成的HEX校验和不一致的问题
STM8 定时器 TIM 中断进入不了
我用的是IAR编译器,昨晚弄了下STM8,发现跟STM32的风格挺像的,所以上手也很快。 今天弄了下TIM4定时器,中断死活进入不了,弄了好久,查了中断号、服务函数啥的,最后发现问题是: 我原来大意 直接复制过去的代码是 void TIM4_Init(void); IAR居然没给我报错。。搞发查了好久才发现问题,这条语句无法正常执行。
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved