您的位置:首页 > 游戏 > 游戏 > 北京建筑人才招聘网_开网店的流程步骤_百度助手手机下载_网站托管服务商

北京建筑人才招聘网_开网店的流程步骤_百度助手手机下载_网站托管服务商

2025/1/4 10:27:02 来源:https://blog.csdn.net/weixin_62292999/article/details/144485854  浏览:    关键词:北京建筑人才招聘网_开网店的流程步骤_百度助手手机下载_网站托管服务商
北京建筑人才招聘网_开网店的流程步骤_百度助手手机下载_网站托管服务商

目录

前言

IC基本定义

三极管基础知识

单片机引脚电路作用

STM8GPIO工作模式

GPIO外设寄存器

寄存器含义用法

CR1:Control Register 1

CR2:Control Register 2

ODR:Output Data Register

IDR:Input Data Register

赋值寄存器更改引脚状态


                                        编写不易,仅供学习,请勿搬运,感谢理解

前言

        本文讲述了STM8位单片机的GPIO 工作模式 相关寄存器 芯片引脚内部状态 同时通过对单片机外界寄存器的读写数据来完成对引脚的配置,以及本文参考B站龙顺宇STM8单片机教程连接放在最后。

IC基本定义

        在嵌入式开发中又很多常用的ic hc164 tja1050 这些都是常用的ic芯片  而ic芯片的定义是集成电路是一种微型电路或者器件,把一个电路中所需要的器件 晶体管 电阻 电容 电感等原件与布线连在一起制作在一块或者几小块晶体上,然后封装在外壳内,留出芯片的基本功能引脚。

                             

                                                        ic图片

三极管基础知识

        三极管分为npn三极管 pnp三级管,同时还有mos管也是三极管的一种,三极管本身有 集电极 发射极 基极 常见的作用是作为开关跟放大电流使用 ,原理是当三极管 基极通电导通  发射极跟集电极导通 同时集电极的电流是基极的电流的倍数。

        区分三极管是npn三极管还是pnp三极管有一个很好的方法,就是看三极管本身图标的箭头箭头是从 p指向n 中间的基极是n就是pnp三极管 ,中间是p就是npn三极管,然后图标中间的是三极管的基极,有箭头的一侧是三极管发射极,另一侧没有箭头的一侧是三极管的集电极。                         

        除此之外还有mos管也是三极管的一种,跟三极管一样有三个基本的电极 栅极(Gate)、源极(Source)、漏极(Drain)

            同样的mos管也具体能细分为p沟道mos管 n沟道mos管,具体的区分方法也就看箭头的指向方向,箭头从内向外指的是pmos管 箭头从外指向内的是n沟道mos管,然后mos管的原理和三极管差不多当,G极是高电平的时候,D极和S极就导通了。                                                               

单片机引脚电路作用

        引脚最外边的两个二极管,是为了防止引脚在输入状态下的,输入的电压过高或者过低,这样对引脚会造成破坏,加上了两个二极管钳位电路,当引脚处于输入状态,输入的电平超过vdd 或者 vss的时候 二极管导通 这个时候 电压就没有接到芯片的引脚,而是进入到二极管的回路里面,就形成了,对单片机引脚的输入保护。

        但是需要注意到的是,二极管钳位电路的保护是有限度的,当输入电压超过电路的限制幅度,单片机引脚一样会被击穿的,同事样的输入电压超过vss幅度限制太多,照样会把单片机的引脚给击穿。

        另外就是两个mos管,上面那个是p mos管,下面的是n mos管,因为上面 p mos管连接的是vdd 也就是芯片的高电平,当上面的mos管导通的时候,vdd会从三极管的 g 极到 s极然后再输出,同样的如果需要输出低电平也就是 给下面nmos管一个高电平 这个时候单片机的nmos 会被导通同时因为连接着单片机的vss,也就是单片机内部的低电平,如果nmos导通过后,也就输出引脚外边的低电平了。

        这里vdd的意思是芯片内部的电源正极 vss的意思是芯片内部的电源负极,同时需要注意的是二极管的导通压降,普通二极管是0.7v肖特基二极管是0..2 0.3v 0.4v 这里芯片的vdd一般是3.3V,输入电压当时4v的时候才会通道,也就是vdd+0.7v的时候才会导通。

        同样的当输入电压为 vss-0.7v的时候,电压才会导通,也是因为二极管本身的导通压降,这里导通压降的意思是,如果二极管导通二极管两端会存在一个,电源电压降。

STM8GPIO工作模式

        这里STM8单片机跟STM32单片机不一样只有6中GPIO的模式,少了输入下拉,还有复用推完输出,复用开漏输出,这里开漏的意思是,内部引脚的mos管pmos管不能导通,既然不能导通就没有办法输出vdd高电平。

GPIO外设寄存器

        STM8对单片机GPIO外设的控制是通过,给GPIO的寄存器来赋值来完成的,GPIO有五个寄存器分别是 输入寄存器 IDR 输出寄存器 ODR 方向寄存器 DDR 控制寄存器1 CR1 控制寄存器 CR2 。

        在程序中,通过对这些GPIO外设的寄存器写入1 或者 0 来完成对单片机外设的控制。

寄存器含义用法

  • DDRData Direction Register 的缩写,表示“数据方向寄存器”。
  • 它用于设置 GPIO 引脚的方向:输入或输出。
    • 0:引脚配置为输入模式。
    • 1:引脚配置为输出模式。

CR1:Control Register 1

  • CR1 是 Control Register 1 的缩写,表示“控制寄存器1”。
  • 它用于配置 GPIO 引脚的输入/输出特性,例如输出驱动模式或输入浮空/上拉特性等。
    • 0:设置为普通模式(例如弱上拉、无特殊功能)。
    • 1:激活额外功能(例如启用上拉电阻、增强驱动能力)。

CR2:Control Register 2

  • CR2 是 Control Register 2 的缩写,表示“控制寄存器2”。
  • 它用于进一步增强 GPIO 的功能配置,例如输出速率控制或引脚复用模式等。
    • 0:禁用高驱动或复用功能。
    • 1:启用高驱动模式或特殊功能(例如快速响应输出)。

ODR:Output Data Register

  • ODR 是 Output Data Register 的缩写,表示“输出数据寄存器”。
  • 它用于控制 GPIO 引脚的输出电平:
    • 0:输出低电平(0V,接地)。
    • 1:输出高电平(通常为VDD电压)。

IDR:Input Data Register

  • IDR 是 Input Data Register 的缩写,表示“输入数据寄存器”。
  • 它用于读取 GPIO 引脚的当前电平状态:
    • 0:引脚当前为低电平(0V)。
    • 1:引脚当前为高电平(通常为VDD电压)。

        这里需要注意的是 DDR 还有 CR1 CR2 配置的是GPIO的模式,配置完模式之后,根据自身设定的模式对 ODR 寄存器写入数据或者IDR寄存器读取数据。

STM8赋值寄存器控制引脚状态

         上面给出了GPIO的每个寄存器的作用,这里就开始使用这些寄存器,来完成对引脚的状态进行控制。

问题1  将PB端口引脚高4位配置为输出,第四位配置为输入模式

问题2 配置PB端口 PB7 PB6输出模式 PB5 PB4 PB3 PB2输入模式  PB0 PB1为输出模式

void GPIO_Init(void)
{PB_DDR = 0xf0;//方向寄存器DDR控制 0 输入 1 输出 
}
PX_DDR  X取值 A B C D 取不同的值代表不同的端口
void GPIO_Init(void)
{PB_DDR = 0xc3;
}

问题3将PB端口PB6和PB2配置为输出模式 其余端口保持原有状态不变

问题4将PB端口PB7 PB5 PB3 PB1配置为输出模式 其余端口保持不变 

void GPIO_Init(void)
{PB_DDR= PB_DDR|0x42;
}
//这里使用|运算 将数据其他格式全部取0 1|0还是1   0|0还是0 这样原有位就保留不变了
void GPIO_Init(void)
{PB_DDR = PB_DDR |0xAA;
}

【龙顺宇STM8单片机教程】51单片机过渡32单片机的好“跳板”_哔哩哔哩_bilibili

                                        欢迎指正,希望对你,有所帮助!!!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com