当前位置:网站首页>Introduction au GPIO
Introduction au GPIO
2022-07-06 23:55:00 【Petit Hou... 2022】
GPIOIntroduction
1.Introduction
GPIOEst l'abréviation du port d'entrée / sortie universel,En termes simples,STM32Pins contrôlables,STM32ChipGPIOLa goupille est reliée à un dispositif externe,Pour communiquer avec l'extérieur、Fonctions de contrôle et d'acquisition de données.STM32ChipGPIODivisé en plusieurs groupes,Chaque groupe a16Pins,Si le modèle estSTM32F103VET6Les modèles de puces sontGPIOA、GPIOB、GPIOCàGPIOETotal5GroupeGPIO,Les puces.1O0Pins,Parmi euxGPIOC'est une grande partie de,Tous lesGPIOLes broches ont des fonctions d'entrée et de sortie de base.
La fonction de sortie la plus basique estSTM32La sortie de la broche de commande est élevée、Faible niveau,Réaliser la commande de commutation,Ru - ji.GPIOLes broches sont connectées àLEDLumière,Alors on peut contrôlerLEDLumière allumée et éteinte,Broche à relais ou à triode,Cela permet de contrôler l'allumage et l'arrêt des circuits externes de haute puissance par relais ou triode.
La fonction d'entrée la plus élémentaire est de détecter le niveau d'entrée externe,Ru - ji.GPIOLes broches sont connectées aux touches,Indique si la clé est pressée en fonction du niveau.
1.1 Diode de protection et、Résistance à la traction
**Les deux tubes secondaires de protection de la goupille empêchent l'entrée de haute ou basse tension à l'extérieur de la goupille,**Lorsque la tension de la broche est supérieure àVDDHeure,La Diode supérieure est conductrice,Lorsque la tension de la broche est inférieure àVssHeure,La Diode inférieure est conductrice,Empêcher l'introduction d'une tension anormale dans la puce de brûler la puce.Malgré cette protection,Ça ne veut pas direSTM32 La goupille peut être directement connectée à l'entraînement de haute puissance ,Comme un moteur à entraînement direct, Entraînement forcé ou moteur non tournant , Ou la puce brûle , Doit augmenter la puissance et isoler l'entraînement du circuit .
1.2 P-MOS Tube etN-MOS Tube
GPIO Après avoir traversé les deux diodes de protection , Vers le Haut “Mode d'entrée”Structure, Vers le bas “Mode de sortie”Structure. Regardez d'abord la section mode de sortie , La ligne passe par un PMOSEtN-MOS Circuit unitaire constitué de tubes . Cette structure permet GPIOOui.“Sortie Push - pull”Et“Sortie de fuite ouverte”Deux modes.
Ce qu'on appelleMode de sortie Push - pull, C'est basé sur ces deux - là. MOS La façon dont les tubes fonctionnent est nommée .**Entrez le niveau élevé dans la structure, Après inversion ,En hautP-MOSConduction,En dessousN-MOSFermer,Sortie externe haut niveau;Et l'entrée d'un moment de faible puissance dans la structure, Après inversion ,N-MOSCanalisation,P-MOSFermer,Sortie externe faible niveau.*****Lorsque le niveau de la goupille est commuté,Deux tubes à tour de rôle,PLe tuyau est responsable du remplissage du courant,NLe tube tire le courant,Pour augmenter sa capacité de charge et sa vitesse de commutation beaucoup plus rapidement que d'habitude.*Le bas niveau de la sortie Push - pull est0Volt,Le niveau élevé est3.3Volt, Voir le diagramme de référence pour le circuit équivalent Push - pull , C'est un circuit équivalent en mode de sortie Push - pull .

EtMode de sortie de fuite ouverteHeure,En hautP-MOS Tube complètement inopérant .Si nous contrôlons la sortie comme0,Faible niveau,EtPMOSTube fermé,N-MOSCanalisation, Mise à la terre de la sortie ,Si la sortie de contrôle est1( Il ne peut pas produire directement des niveaux élevés )Heure,EtP-MOSTube etN-MOSLes tuyaux sont fermés,Donc la broche ne produit pas de haut niveau,Pas de sortie de bas niveau,Haute résistance.
La sortie de fuite ouverte est généralement utilisée pourI2C、SMBUS Communications, etc. nécessaires“Lignes et”Dans le circuit de bus de la fonction
typedef enum
{
GPIO_Mode_AIN = 0x0, // Entrée analogique
GPIO_Mode_IN_FLOATING = 0x04, // Entrée flottante
GPIO_Mode_IPD = 0x28, // Drop - down input
GPIO_Mode_IPU = 0x48, // Tirez sur l'entrée
GPIO_Mode_Out_OD = 0x14, // Sortie de fuite ouverte
GPIO_Mode_Out_PP = 0x10, // Sortie Push - pull
GPIO_Mode_AF_OD = 0x1C, // Multiplexage de la sortie de fuite ouverte
GPIO_Mode_AF_PP = 0x18 // Multiplexage Push - Pull Output
} GPIOMode_TypeDef;
1.3AllumezLEDLumière
Processus
1)ActiverIOHorloge de bouche,Par appel:
RCC_ABP2PeriphColckCmd( )
- InitialisationIOMode bouche,Appelez:
GPIO_Init( )
- FonctionnementIOBouche,Haut et bas niveau de sortie
GPIO_SetBits( )
GPIO_ResetBits( )
# Pour augmenter la portabilité du Code , Définir les macros associées au matériel dans bsp_LED.h Moyenne
#ifndef _BSP_LED_H
#define _BSP_LED_H
#define LED1_GPIO_CLK RCC_APB2Periph_GPIOA
#define LED1_GPIO_PORT GPIOA
#define LED1_GPIO_PIN GPIO_Pin_8
#define LED2_GPIO_CLK RCC_APB2Periph_GPIOD
#define LED2_GPIO_PORT GPIOD
#define LED2_GPIO_PIN GPIO_Pin_2
#include "stm32f10x.h"
void LED_GPIO_Config(void);
#endif/*_BSP_LED_H*/
LEDConfiguration d'initialisation
#include "./LED/bsp_led.h"
void LED_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitType_struct_A;
GPIO_InitTypeDef GPIO_InitType_struct_D;
/* Étape 1: allumez l'horloge périphérique */
RCC_APB2PeriphClockCmd(LED1_GPIO_CLK,ENABLE);
RCC_APB2PeriphClockCmd(LED2_GPIO_CLK,ENABLE);
/* Étape 2 configurer la structure d'initialisation périphérique */
GPIO_InitType_struct_A.GPIO_Pin = LED1_GPIO_PIN;
GPIO_InitType_struct_A.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitType_struct_A.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitType_struct_D.GPIO_Pin = LED2_GPIO_PIN;
GPIO_InitType_struct_D.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitType_struct_D.GPIO_Speed = GPIO_Speed_10MHz;
/* Étape 3 appeler la fonction d'initialisation , Écrire les membres de la structure configurée dans le registre */
GPIO_Init(LED1_GPIO_PORT,&GPIO_InitType_struct_A);
GPIO_Init(LED2_GPIO_PORT,&GPIO_InitType_struct_D);
Procédure principale
#include "stm32f10x.h"
#include "./LED/bsp_led.h"
void delay(uint32_t count)
{
for(;count!=0;count--);
}
int main(void)
{
LED_GPIO_Config( );
while(1)
{
GPIO_SetBits(LED2_GPIO_PORT,LED2_GPIO_PIN);
GPIO_ResetBits(LED1_GPIO_PORT,LED1_GPIO_PIN);
delay(0xfffff);
GPIO_SetBits(LED1_GPIO_PORT,LED1_GPIO_PIN);
GPIO_ResetBits(GPIOD,LED2_GPIO_PIN);
delay(0xfffff);
}
}
边栏推荐
- One minute to learn how to install the system, win7 XP, win10 and win11 become very simple
- 1000 words selected - interface test basis
- Today, I met a senior test developer from Tencent and saw the ceiling of the foundation
- AVL树到底是什么?
- Competition between public and private chains in data privacy and throughput
- Knowledge * review
- 士大夫哈哈哈
- The important data in the computer was accidentally deleted by mistake, which can be quickly retrieved by this method
- 数据运营平台-数据采集[通俗易懂]
- PostgreSQL高可用之repmgr(1主2从+1witness)+Pgpool-II实现主从切换+读写分离
猜你喜欢

How to implement Lua entry of API gateway

Basic chart interpretation of "Oriental selection" hot out of circle data

氢创未来 产业加速 | 2022氢能专精特新创业大赛报名通道开启!

STM32 enters and wakes up the stop mode through the serial port

电脑重装系统u盘文件被隐藏要怎么找出来

【OFDM通信】基于深度学习的OFDM系统信号检测附matlab代码

The largest single investment in the history of Dachen was IPO today

Knowledge * review

什么是响应式对象?响应式对象的创建过程?

基于jsp+servlet+mysql框架的旅游管理系统【源码+数据库+报告】
随机推荐
[system analyst's road] Chapter 7 double disk system design (service-oriented development method)
Gold three silver four, don't change jobs
11 preparations for Web3 and Decentralization for traditional enterprises
How to answer the dualistic opposition of Zhihu
[OFDM communication] OFDM system signal detection based on deep learning with matlab code
Local deployment Zeppelin 0.10.1
ArrayExpress数据库里的细胞只有两个txt是不是只能根据Line到ENA下载测序跑矩阵?
【OFDM通信】基于深度学习的OFDM系统信号检测附matlab代码
If the request URL contains jsessionid, the solution
《数字经济全景白皮书》保险数字化篇 重磅发布
【CVPR 2022】半监督目标检测:Dense Learning based Semi-Supervised Object Detection
Pdf document signature Guide
SuperSocket 1.6 创建一个简易的报文长度在头部的Socket服务器
微信小程序uploadfile服务器,微信小程序之wx.uploadFile[通俗易懂]
[boutique] Pinia Persistence Based on the plug-in Pinia plugin persist
使用源码编译来安装PostgreSQL13.3数据库
Penetration test --- database security: detailed explanation of SQL injection into database principle
[communication] optimal power allocation in the uplink of two-layer wireless femtocell network with matlab code
MATLIB reads data from excel table and draws function image
app通用功能测试用例