江科协单片机学习总结

第三单元

 需要知道的概念

GPIO是什么?

GPIO(General Purpose Input/Output)是通用目的输入/输出的缩写。在计算机领域,特别是嵌入式系统和单片机的开发中,GPIO是一个重要的概念。它允许计算机或微控制器与外部设备进行通信,控制输入和输出信号,从而实现与外部世界的交互。(来自gpt)

引脚电平 0-3.3V ,引脚定义带FT(five tolerate)可容忍5V(输入可容忍5V,但是输出最大3.3V)

结构图

寄存器

       在嵌入式系统中,寄存器是位于微处理器(CPU)内部的一组特殊的存储单元。这些寄存器用于暂时存储数据和控制特定功能。寄存器直接与硬件相关,并且用于控制 CPU 的操作。在 GPIO 编程中,我们使用寄存器来配置和控制 GPIO 引脚 

寄存器对应引脚,输入寄存器读取为1,对应端口为高电平,读取为0对应低电平

驱动器

增加信号的驱动能力

GPIO 引脚

GPIO 引脚是与外部世界连接的 I/O 引脚,通常用于与其他电路、传感器、执行器等设备进行交互。GPIO 引脚可以用于输入或输出,也可以通过配置实现其他功能,如中断、模拟输入等。GPIO 引脚通常在芯片的引脚脚脚上标识,例如,GPIOA Pin0 表示某个单片机芯片上 GPIOA 端口的第 0 号引脚。 

GPIO,寄存器,引脚的关系

在嵌入式系统中,GPIO 引脚通常与特定的寄存器关联,这些寄存器用于配置和控制引脚的功能和状态。寄存器的位对应着一个或多个 GPIO 引脚,通过设置或清除这些位,我们可以控制相应的 GPIO 引脚。在单片机的开发中,通常会有一个 GPIO 控制器,其内部包含用于控制 GPIO 引脚的多个寄存器。这些寄存器可以设置 GPIO 引脚的输入输出模式、上拉/下拉电阻状态、输出值等。通过操作这些寄存器,我们可以实现对 GPIO 引脚的配置和控制。

例如,假设有一个寄存器 GPIOA_MODER 用于配置 GPIOA 端口的引脚模式(输入/输出),GPIOA_OTYPER 用于配置 GPIOA 端口的输出类型(开漏输出/推挽输出),GPIOA_ODR 用于控制 GPIOA 端口的输出值(高/低),那么我们可以通过对这些寄存器的设置来实现对 GPIOA 引脚的配置和控制。

 8种输出输入模式

 输入模式下,输出是断开的;输出模式下,输入是有效的,一个端口多输入单输出

 P-MOSS无效为开漏输出,P-MOSS和N-MOSS都有效为推挽输出

复用输出,引脚控制权转移到片上外设,片上外设也可以读取引脚电平,普通输入也有用

下面是来自gpt的解释

上拉输入(Pull-Up Input)

  • 上拉输入是指在输入引脚上连接了一个上拉电阻,使得当引脚未连接外部信号时,引脚会被拉高至逻辑高电平(通常是 VCC,供电电压)。
  • 当外部信号连接到引脚上时,引脚会根据外部信号的电平状态决定其输入状态(逻辑高或逻辑低)。
  • 上拉输入通常用于连接外部开关、按钮或其他开关设备,当开关处于断开状态时,引脚会被拉高,当开关闭合时,引脚会被拉低。

下拉输入(Pull-Down Input)

  • 下拉输入是指在输入引脚上连接了一个下拉电阻,使得当引脚未连接外部信号时,引脚会被拉低至逻辑低电平(通常是 GND,地)。
  • 当外部信号连接到引脚上时,引脚会根据外部信号的电平状态决定其输入状态(逻辑高或逻辑低)。
  • 下拉输入通常用于连接外部开关、按钮或其他开关设备,当开关处于断开状态时,引脚会被拉低,当开关闭合时,引脚会被拉高。

悬空输入(Floating Input)

  • 悬空输入是指输入引脚没有外部信号连接,也没有内部上拉或下拉电阻与之连接。
  • 在悬空输入状态下,引脚没有确定的电平状态,可能会受到噪声干扰而产生随机的电平变化。
  • 在悬空输入状态下,引脚可能会因为没有确定的电平而引发不稳定的信号和错误操作。因此,在使用悬空输入时,应该在硬件电路或软件中对引脚进行适当处理,如使用外部上拉或下拉电阻,或者在代码中对引脚的输入状态进行明确设置。

开漏输出(Open-Drain Output)

  • 在开漏输出模式下,输出引脚可以被拉低(逻辑0),但不能被推高(逻辑1)。
  • 当输出引脚被拉低时,它实际上与地(GND)相连接,形成一个低电平。
  • 当输出引脚没有被拉低时,它不连接到任何电源,处于开放状态,形成一个高阻抗。
  • 开漏输出常用于需要与外部电路进行逻辑级转换的情况,例如与上拉电阻或外部电平转换器一起使用,可以实现多种电平的转换。开漏输出可以用于驱动电平不匹配的外设,如I2C总线、GPIO扩展器等。

推挽输出(Push-Pull Output)

  • 在推挽输出模式下,输出引脚可以被推高(逻辑1)也可以被拉低(逻辑0)。
  • 当输出引脚被推高时,它连接到高电平电源,形成一个高电平。
  • 当输出引脚被拉低时,它连接到地(GND),形成一个低电平。
  • 推挽输出是常用的输出模式,适用于驱动大多数外部电路和设备,如LED、电机、传感器等。

复位中断

是在计算机或嵌入式系统中的一种特殊中断类型,用于将系统恢复到初始状态。当复位中断触发时,系统将重启,并将其状态和所有的寄存器恢复到预定义的值,以确保系统在一个可控的状态下重新开始运行。 

数字电压与模拟电压 

  1. 数字电压

    • 数字电压是一种离散的电压信号,其值只能取特定的离散值,通常以二进制表示(0和1)。
    • 在数字系统中,使用固定的电压阈值(通常是高电平和低电平的电压值),来表示逻辑值 0 和 1。例如,当电压高于某个阈值时,表示逻辑 1;当电压低于另一个阈值时,表示逻辑 0。
    • 数字电压常用于数字电路和计算机系统中,如微处理器、内存、逻辑门等。
  2. 模拟电压

    • 模拟电压是一种连续的电压信号,其值可以取任意的连续数值,不限于特定的离散值。
    • 在模拟系统中,电压可以在一定范围内变化,可以表示连续的实数值。例如,模拟电压可以表示从 0V 到某个最大电压值之间的任意电压水平。
    • 模拟电压常用于模拟电路、传感器、音频/视频设备、电源供应等应用中,它允许以连续的方式传递和处理信号。

操作stm32GPIO的三个步骤

使用RCC开启GPIO的时钟;使用GPIO_Init函数初始化GPIO;使用输出输入函数控制GPIO口

 

 使用库函数的方法

  1. 先打开.h文件的最后,看有哪些函数,右键转到定义,查看参数和用法,利用翻译软件,推荐有道或者问gpt
  2. 资料文件夹里的库函数用户手册,所有函数的都有,而且是中文的,下面还有例子可直接复制,但版本可能有偏差
  3. 百度参考咯 

硬件知识

LED和蜂鸣器

LED:发光二极管,正向通电亮,反向不亮。引脚没剪过的的LED长脚是正,短脚是负极

有源蜂鸣器:自带震荡源,将正负极接上直流电压可持续发声,频率稳定

无源蜂鸣器:需要控制器提供震荡脉冲发声,调整脉冲频率发出不同频率的声音。

面包板

竖着的五个孔内部连接在一起,元件插在纵排即可连接;上下4排供电用。

接led举例


左边必须是上拉或下拉
右边允许浮空
一般用上方两种
 

 c语言基础

 

 总结

 本博客注重记录学习单片机必备的知识,在有模电电路知识前提下学习比较合适,单片机的具体学习需要看b站江科协会,自己的一些注释也在源码之中,可以翻看。重点在于学会通过手册查找,或者通过现有解释了解函数以及学会模块化编程。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值