STM32-GPIO

news/2024/5/15 17:38:17

🤓🤓🤓

  • 1
  • 2
    • 2.1
  • 2.2
    • 2.3
  • 3
  • 4
    • 4.1
    • 4.2
    • 4.3
    • 4.4
    • 4.5
    • 4.6
    • 4.7
    • 4.8
  • 5
  • 6
  • 7
  • 8
  • 8.1
  • 8.2
  • 9
    • 9.1
    • 9.2

  • STM32 第一个外设

在这里插入图片描述

1

在这里插入图片描述

  • 对我们来说 和IO口没区别 ST公司非叫GPIO

2

在这里插入图片描述

2.1

在这里插入图片描述

  • 第二个是超频了 F1 72M 这翻转就36

2.2

在这里插入图片描述

  • 有cmos 和ttl两种
  • 数据手册里给出整个芯片最低电流为150ma 单个都这么大 早超了 可以有其他扩流方案 外接其他(继电器?)

在这里插入图片描述

  • FT的就是TTL

2.3

在这里插入图片描述

  • 电源引脚 带V的
  • 晶振引脚 低速那个32 就对应了频率
  • 复位引脚 脚位为7
  • 下载引脚 很多 有串口的 swd JTag
  • BOOT引脚 F1系列 有两 BOOT1 在PB2上 复用
  • GPIO引脚 P开头的都是
  • LQFP好像是封装模式 他这图里

在这里插入图片描述

  • 精英每组都是16个

3

在这里插入图片描述

  • 这两区别是 上下拉电阻 F1的只有输入的时候有
  • 左右来看 是内部和外部
  • 上下来看 是输入 输出
    在这里插入图片描述
  • 讲了 输入
  • 模拟输入和复用功能输入 可以看成 51里 第二功能
  • 模拟输入那 外设就是ADC DAC

在这里插入图片描述

  • 位设置 那个寄存器 是BSRR
  • 上面那两路都是通用输出 最上面是通过BSRR间接的
  • 最下面外设 比如串口

在这里插入图片描述

  • 介绍几个器件
  • 保护二极管 保护输入呢 过高或过低

在这里插入图片描述

  • 二极管有钳位作用 要加上这个电阻
  • 下面那个 -5v 一样道理
  • 保护二极管 是很弱的保护

在这里插入图片描述

  • 阻值是30k~50k I很小 所以弱的上下拉电阻

在这里插入图片描述

在这里插入图片描述

  • 简单来说 不相同就导通

4

在这里插入图片描述

  • 四个输入 四个输出 前面三个 作为通用输入
  • 完全浮空就是没有使用上下拉
    在这里插入图片描述
  • I方c数据 时钟引脚就用这个
  • 25ma 那个是最大输出电流

4.1

在这里插入图片描述

  • 再通过CPU读取IDR寄存器
    在这里插入图片描述
  • 这种情况下 空闲时就是高阻态 由后面决定
  • 好像上下拉电阻 这种情况下就是为了防止高阻态?
  • 和以前单片机那个上拉电阻有点不一样了 那个是为了 保证 1 和 0 正确
  • 这里更像是为了IO口状态确定 就好像本应该是混沌

4.2

在这里插入图片描述

  • 空闲时 外部高阻态 IDR 和 IO都是高电平

4.3

在这里插入图片描述

  • 为啥下拉 1 也对应1
  • IDR和 IO口 0
  • 这个vss就是地把

4.4

在这里插入图片描述

4.5

在这里插入图片描述

  • F1 在输出时 上下拉电阻 是关闭的 硬件决定
  • 配置为输出模式时 仍可以读取引脚高低电平
  • 这个括号内部 是针对其他系列的 F1 此时上下拉电阻不起作用
  • 要买上拉电阻 呜呜呜
    在这里插入图片描述
  • 输出控制里面有个取反

4.6

在这里插入图片描述

  • 控制输出的地方变了

4.7

在这里插入图片描述

  • 驱动能力强是 如 VDD直接连外部 没有经过电阻 单纯由电源控制

4.8

在这里插入图片描述

在这里插入图片描述

  • 开漏 外接上拉电阻 电源为5 V时 可以

5

在这里插入图片描述

  • 有七个
  • 每一组对应七个 x就是GPIO A~E

在这里插入图片描述

在这里插入图片描述

  • 高+低 64 位 GPIO一组16个引脚 1个引脚 要用4个位配置
  • CRL PA0 ~ PA7
    在这里插入图片描述

在这里插入图片描述

  • 用ODR来配置 不用IDR 估计占用着呢
    在这里插入图片描述
  • 再把第10个设置为1 就是PA10上拉输入了
  • 每一个位 对应1个IO口
    在这里插入图片描述

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

  • 都可以举例来学

在这里插入图片描述

在这里插入图片描述

  • 这里中断风险 指操作同一个寄存器

6

在这里插入图片描述

  • 选择时钟(有的用默认的) 开启时钟

  • 参数设置 比如GPIO工作模式

  • IO 除GPIO外 usart/uart 串口 把IO复用为串口的数据引脚

  • 中断 比如串口 有发送中断 和 接受中断

  • 后两可选

  • 针对所有外设

在这里插入图片描述

  • 比如串口从特定数据寄存器读取数据
  • 可选
  • GPIO 这个外设 用不到4

7

在这里插入图片描述

  • 一个宏 四个函数 HAL库提供
  • 3那个是翻转
  • 这不选择时钟 是因为GPIO挂载在总线上 随系列不同

在这里插入图片描述

在这里插入图片描述

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

  • 就是介绍一下怎么使能的吧
    在这里插入图片描述
  • ADC和定时器 也是这么开的

在这里插入图片描述

  • 这是直接去function里面 找的 也可以搜

在这里插入图片描述

  • 7个寄存器
    在这里插入图片描述

  • GPIO 寄存器基地址 这旁边都是寄存器基地址 寄存器结构体 + 基地址

在这里插入图片描述

  • GPIO初始化相关结构体
  • 成员赋的值 不能随意 有参考

在这里插入图片描述

  • 最后一个是pin的断言测试

在这里插入图片描述

  • 输入模式 3个 加上下面五个 就8种工作模式了

在这里插入图片描述

  • 就在上面下面一点

在这里插入图片描述

在这里插入图片描述

  • WritePin 也可以从这找到

在这里插入图片描述

在这里插入图片描述

  • 再设置参数接受这个返回值

8

在这里插入图片描述

在这里插入图片描述

  • 不懂这个为啥是忽略的了
  • 2.88mA 比上面低 影响不大 亮度低一点
  • 蓝色的是有电源了

在这里插入图片描述

  • 输入是采集 输出是控制
  • 推挽可以高低电平 驱动能力强
  • 这个共阳 开漏也可以 高阻态相当断开 也就灭了

在这里插入图片描述

  • 开漏右边这个不行 左边这个估计行
    在这里插入图片描述

8.1

在这里插入图片描述

  • 直接复制的这个
  • 要编写LED驱动 要创建板级驱动文件 BSP

在这里插入图片描述

  • 保存到BSP/LED 里

在这里插入图片描述

  • 再创建分组把led.c 添加进来(不懂为啥创建分组 和不添加led.h)

在这里插入图片描述

  • 复制里面的 固定搭配

在这里插入图片描述

  • 防止led.h被重复包含和编译

在这里插入图片描述

  • 因为用PB5
  • 配置步骤前两步
  • 这没设置pull 用不上 不用管 就算设置了 好像也没用
    在这里插入图片描述
  • 这个横向分屏
    在这里插入图片描述
  • 开始灭着
  • 这机霸写 怎么在GPIO初始化前 写错了 没事居然
    在这里插入图片描述
  • 在把这个函数声明 放在.h里 方便后续调用

在这里插入图片描述

  • 这个PB5是红灯的

在这里插入图片描述

  • 那个led_int 那开始 出了个三角 类似这种 后来改了led.c 最后加个空行(其定义处)
  • 不懂这包含头文件的关系

在这里插入图片描述

  • 逗号后面加空格 代码规范

在这里插入图片描述

  • 又试了一下 翻转
    在这里插入图片描述
  • 1居然不行 0u也不行

8.2

  • 见开发指南
  • 这把红的定义成LED了
  • 有些为了增加移植性

9

9.1

在这里插入图片描述

  • 抖动期间 判断不了 是 1还是 0
  • 抖动时间一般 5~10ms
  • 除了软件消抖 还有硬件的

在这里插入图片描述

  • 1 3分开
  • 不按下是 高阻态 要通过上下拉来改变高阻态
  • 1 高阻态(所以下拉 把高阻态改成0) 后面类似
  • 3中通用输入 IO口电平不一样

在这里插入图片描述

  • 这是精英版的
  • 首先复制前面LED的文件夹
  • 然后BSP里添加 KEY文件夹
  • 新建key.c(并添加分组) 和 key.h

在这里插入图片描述

  • 速度没意义 这里采集
    在这里插入图片描述

在这里插入图片描述

  • 用的KEY1 PE3

在这里插入图片描述

9.2

  • 先不必理会

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.tangninghui.cn.cn/item-12867.htm

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

安卓远离手机app

软件介绍 远离手机是专门为防止年轻人上瘾而打造的生活管理类的软件,适度用手机,保护眼睛,节约时间。 下载 安卓远离手机app

c++的学习之路:20、继承(1)

摘要 本章主要是讲以一下继承的一些概念以及使用方法等等。 目录 摘要 一、继承的概念及定义 1、继承的概念 2、继承定义 1.2.1、定义格式 1.2.2、继承关系和访问限定符 1.2.3、继承基类成员访问方式的变化 3、总结 二、基类和派生类对象赋值转换 三、继承中的作用…

基于SpringBoot2.x、SpringCloud和SpringCloudAlibaba并采用前后端分离的企业级微服务多租户系统架构

简介 基于SpringBoot2.x、SpringCloud和SpringCloudAlibaba并采用前后端分离的企业级微服务多租户系统架构。并引入组件化的思想实现高内聚低耦合并且高度可配置化,适合学习和企业中使用。 真正实现了基于RBAC、jwt和oauth2的无状态统一权限认证的解决方案&#x…

2024年03月CCF-GESP编程能力等级认证Scratch图形化编程二级真题解析

本文收录于专栏《Scratch等级认证CCF-GESP真题解析》,专栏总目录・点这里 一、单选题(一共 15 个题目,每题 2 分,共 30 分) 第1题 小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙,这个鸿蒙是?( ) A、小程序 B、计时器 C、操作系统 D、神话人物 答案…

UML2.0在系统设计中的实际使用情况

目前我在系统分析设计过程中主要使用UML2.0来表达,使用StarUML软件做实际设计,操作起来基本很顺手,下面整理一下自己的使用情况。 1. UML2.0之十三张图 UML2.0一共13张图,可以分为两大类:结构图-静态图,行…

HTMLCSS

前端入门 1、HTML&CSS 1、选择器 通配选择器 元素选择器 类选择器 id选择器 复合(组合) 选择器 交集选择器(且) <style> p.class {... } /* 元素选择器需在前面 */.class1.class2 {... } </style>并集选择器(或者) <style> .class1, .class2, …