stm32:使用和学习--硬件和程序

一硬件

1. GPIO

1.FT, TT功能

ft:five tolerate

tt:three tolerate

  1. FT(Five-Volt Tolerant)引脚

FT 引脚能够容忍高于 VDD 的输入电压(例如 5V)。这些引脚通常不具有连接到 VDD 的保护二极管,因此能够处理比供电电压更高的输入信号,而不会造成电流流入 VDD。它们可能具有特殊的电压钳位电路来保护内部电路。

  1. 非 FT 引脚

标准的 GPIO 引脚通常具有保护二极管,这些二极管连接在引脚和 VDD/VSS 之间。对于这些引脚,输入电压如果超过 VDD,保护二极管将导通,导致电流流入 VDD。这类引脚的输入电压不应超过 VDD 加上保护二极管的正向导通电压,否则可能损坏芯片。

  1. 模拟引脚

模拟引脚(如 ADC 输入引脚)可能设计有低泄漏电流特性,这些引脚可能没有或只具备有限的保护电路,以保证高精度的模拟信号输入。

没有找到FT是如何实现的电路图,先记住ft引脚可以处理 输入或者输出5v的电压,普通引脚只能处理3.3v,adc引脚使用的时候也要注意。还有就是在电压范围内,电流也要在安全范围内才行。

为了理解为什么ft引脚能够通过开漏输出上拉到5v,普通引脚只能到3.7v,找了好几个小时的资料,还是没想通,因为一直认为ft才有上下钳位保护,普通引脚没有,但是这样的话,普通引脚也能输出5v电压,只要外面上拉电压够就行,不考虑烧毁的风险的话。就一直找电路图,一直也没有找到,慢慢才理解到是都有保护二极管进行钳位,但是ft引脚经过特殊处理,可以钳位到5v以内。

AN4899 应用笔记 执行硬件设置以及实现低功耗的STM32 GPIO配置

STM32的GPIO工作原理及模式经验分享 STM32的GPIO工作原理及模式经验分享 - STM32团队 ST意法半导体中文论坛

STM32 GPIO理论基础知识之基本结构

STM32 GPIO理论基础知识之基本结构 - STM32团队 ST意法半导体中文论坛

明解STM32---GPIO理论基础知识篇之基本结构

https://www.cnblogs.com/Sharemaker/p/17107060.html

二软件程序

gpio初始化:

复制代码
void MX_GPIO_Init(void)
{
  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  __HAL_RCC_GPIOC_CLK_ENABLE();

  /*Configure GPIO pin Output Level */
  HAL_GPIO_WritePin(GPIOC, U5_Pin|U6_Pin, GPIO_PIN_RESET);

  /*Configure GPIO pins : PCPin PCPin */
  GPIO_InitStruct.Pin = U5_Pin|U6_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
}

注意输出引脚初始化顺序,最重要的是HAL_GPIO_WritePin先设置引脚电平状态(高低电平看情况),再init。

可能的副作用

  • 不确定的初始状态 :如果在 HAL_GPIO_Init 之前未设置引脚状态,有可能在初始化时引脚会处于不确定状态。尤其是在复位后,引脚的默认状态可能会导致意外行为。

  • 初始化过程中的瞬态状态:在某些情况下,初始化过程中的短暂瞬态状态(如切换模式时的瞬间状态)可能会影响外部电路或设备。例如,某些外设可能会对特定电平敏感,导致不希望的操作。

输入引脚的初始化不需要先write。

【STM32】- GPIO开发经验分享-如何避开初始化的坑

https://blog.csdn.net/m0_54916619/article/details/129825747

相关推荐
woshihuanglaoshi10 分钟前
数据迁移与版本管理 - Flutter在鸿蒙平台实现数据库升级策略
数据库·学习·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
世人万千丶10 小时前
参数管理_Flutter在鸿蒙平台路由参数最佳实践
学习·flutter·华为·harmonyos·鸿蒙
遇乐的果园13 小时前
前端学习笔记-vue加载渲染优化
前端·笔记·学习
遇乐的果园14 小时前
前端学习笔记-vue状态管理优化
前端·笔记·学习
从零开始的代码生活_15 小时前
C++ 继承详解:访问控制、对象模型、菱形继承与设计取舍
开发语言·c++·后端·学习·算法
可乐奶茶sky15 小时前
AI Agent 学习
人工智能·学习
茯苓gao16 小时前
嵌入式开发笔记:EtherCAT协议从硬件到软件完整配置指南——从零搭建一套EtherCAT通信系统
笔记·嵌入式硬件·学习
RD_daoyi17 小时前
外链权重暴跌至13%,品牌提及反超传统链接——2026年不做Digital PR,你的独立站等于隐形
运维·网络·学习·机器学习·搜索引擎
chase。18 小时前
【学习笔记】PointWorld:迈向通用机器人操控的3D世界模型
笔记·学习·机器人
AOwhisky18 小时前
Python 学习笔记(第十三期)——运维自动化(下·前篇):远程命令执行——paramiko基础篇
运维·python·学习·云原生·自动化·运维开发·paramiko