首页 > 其他分享 >【STM32】2_0 GPIO

【STM32】2_0 GPIO

时间:2023-08-22 16:35:04浏览次数:32  
标签:__ HAL MOS 5V STM32 关闭 GPIO

注:凡是有 FT 标志的,都是兼容 5V 电平的 IO 口,可以直接接 5V 的外设(注意:如果引脚设置的是模拟输入模式,则不能接 5V!,凡是不带 FT 标志的,不可与无5V链接,可能烧坏 MCU。

根据数据手册中列出的每个 I/O 端口的特性,可通过软件将通用 I/O (GPIO) 端口的各个端口 位分别配置为多种模式:

● 输入浮空

● 输入上拉

● 输入下拉

● 模拟功能 用于ADC输入引脚或者DAC的输出引脚

● 具有上拉或下拉功能的开漏输出

● 具有上拉或下拉功能的推挽输出

● 具有上拉或下拉功能的复用功能推挽

● 具有上拉或下拉功能的复用功能开漏

P-MOS

N-MOS

输出

打开

关闭

高电平

关闭

打开

低电平

关闭

关闭

浮空/高阻态

打开

打开

烧毁

推挽输出

MOS管保持一下两种状态

P-MOS

N-MOS

输出

打开

关闭

高电平

关闭

打开

低电平

开漏输出

永远保持P-MOS关闭状态

P-MOS

N-MOS

输出

关闭

打开

低电平

关闭

关闭

浮空/高阻态

作用1

改变高电平的电压,使用外部上拉电阻。

例子:单片机电压为3.3V,芯片使能端电压位5V。使用5V上拉电阻,当N-MOS关闭,芯片上拉为5V,当N-MOS打开,芯片使能端为低电平。

作用2

支持线与模式

多个GPIO同时控制输出端

 

HAL库驱动

void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)

初始化函数 CUBEMX生成

void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)

恢复为复位后的状态

GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)

void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)

void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)

翻转

HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)

锁定配置

特殊的GPIO控制

__HAL_RCC_AFIO_CLK_ENABLE();

__HAL_RCC_GPIOB_CLK_ENABLE();         //

__HAL_RCC_GPIOF_CLK_ENABLE();         //

 

 

/* JTAG-DP Disabled and SW-DP Disabled */

__HAL_AFIO_REMAP_SWJ_DISABLE();                        //完全禁用SWD及JTAG

__HAL_AFIO_REMAP_SWJ_NOJTAG();                                //禁用JTAG

常用

__HAL_RCC_AFIO_CLK_ENABLE();

__HAL_AFIO_REMAP_SWJ_NOJTAG();

注:非不要设保留这些接口

禁用掉后可能会出现 “RAM check failed at :”或者“NO M-Cortex”.

解决办法

禁用掉JTAG 后可以使用SWD 进行下载程序

采用BOOT0 模式进行烧写程序 修改配置

标签:__,HAL,MOS,5V,STM32,关闭,GPIO
From: https://www.cnblogs.com/Mountainssea/p/17648875.html

相关文章

  • STM32深入学习1:时钟系统和GPIO
    RCC(复位和时钟控制):系统复位的因素:1.NRST按键复位2.看门狗复位3.软件复位4.低功耗管理复位SYSCLK系统时钟: 1.HSI时钟2.HSE时钟:外部晶振3.PLL时钟  系统时钟:PCLK1:APB1分频,最大36mhz   PCLK2,ADC,TIM1,TIM8:APB2分频 初始化:相关知识:RCC相关寄存器:R......
  • STM32 Wifi开发
    一、概述1.用到的资源说明1.1wifi模块:ESP8266EX1.2串口,串口接收不定长数据采用定时器超时的方式判断一帧数据是否接收完成,定时器1ms中断一次;2.采用AP+Station模式,这种模式比较实用。AP用来设置wifi信息的,连接ESP8266wifi信号,此时ESP8266就是服务端,可以写一个上位机socket......
  • CAN通信知识梳理及在Stm32上的应用(HAL库)
    文章目录一.CAN通信简介二.硬件连接三.CAN总线上的电平信号四.CAN帧的种类(1)遥控帧(2)数据帧五.CAN的仲裁方法六.CAN在Stm32上的应用(1)CubeMX上CAN的配置(2)配置CAN过滤器32位列表模式16位列表模式32位掩码模式(3)CAN数据的发送与接收六.参考文档七.同系列......
  • 嵌入式开发软件安装教程(STM32CubeMX+MDK)
    1.STM32CubeMX,图形化配置工具安装STM32CubeMX必须具备的条件(1)JRE(JavaRuntimeEnvironment):JAVA运行环境。(2)STM32CubeMX软件:图形化配置,生成初始化代码。(3)HAL库PACK包:F0、F1、F3、H7等Cortex内核,都需要对应的PACK包安装。安装步骤:安装路径尽量避免出现中文1.1安装JAVAJRE......
  • 野火F1开发板STM32案例 0.96 oled综合库使用
    野火F1开发板STM32案例0.96oled综合库使用硬件平台野火STM32F103ZET6霸道V2开发板正点原子F1系列开发板0.96IIColed模块软件平台KeilMDK5.31串口调试助手IIC总线处理器和芯片间的通信可以形象的比喻成两个人讲话:1、你说的别人得能听懂:双方约定信号的协议。2、你的语速别人......
  • gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;含义
    gpio=<&gpio0RK_PA6GPIO_ACTIVE_HIGH>;第一个参数是GPIO编号 第二个参数是GPIO引脚一般GPIO有32个引脚 定义在kernel-4.19\include\dt-bindings\pinctrl\rockchip.h#defineRK_GPIO00#defineRK_GPIO11#defineRK_GPIO22#defineRK_GPIO33#defin......
  • RK3399驱动开发 | 01 -RK3399 gpio的使用(用户态和设备树两种方式)
    一、RK3399的GPIO  RK3399有5组GPIO,GPIO0-GPIO4,每一组GPIO成为一个GPIObank,每组GPIO包含32个引脚,需要注意,不是所有bank都有全部编号,例如GPIO4就只有C0-C7,D0-D2,所以一共有122个可用GPIO二、计算GPIO编号Friendly的开发板上板载一个状态LED,如下: 该LED接在GPIO0_B5......
  • 关于 STM32 在使用 C++ 进行编程时无法进行中断(触发中断就死循环)的问题
    他妈的!!!就因为这破事导致我浪费了两天的时间!!!都是基础不扎实的锅,导致我没能第一时间想到问题的关键好了,平复一下心情,快速的写一篇博客来记录这个叼问题解决方法先把结论放在这里:用extern"C"{}把中断函数包起来//就像这样extern"C"{voidEXTI4_IRQHandler(){HAL_GP......
  • 12 pinctrl 和 gpio 子系统实验
    一、pinctrl子系统1.什么是pinctrl子系统?  首先回顾一下如何初始化LED所使用的GPIO:①、修改设备树,添加相应的节点,节点里面重点是设置reg属性,reg属性包括了GPIO相关寄存器。②、获取reg属性中GPIOI_MODER、GPIOI_OTYPER、GPIOI_OSPEEDR、GPIOI_PUPDR和GPI......
  • GPIO输入
    按键:按下导通,松手断开按键抖动:由于案件内部使用的是机械式弹簧片来进行通断的,所以在按下和松手的瞬间会伴随有一连串的抖动,比如有5-10ms的时间,对于单片机来说这个抖动是漫长的,所以在程序中,要对这个抖动进行过滤。否则就会出现按键按一下,单片机反应了多次的现象。解决方法:加一段......