当前位置:网站首页>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);
}
}
边栏推荐
- 什么是响应式对象?响应式对象的创建过程?
- Do you still have to rely on Simba to shout for a new business that is Kwai?
- Competition between public and private chains in data privacy and throughput
- GPIO简介
- Entropy information entropy cross entropy
- 英国都在试行4天工作制了,为什么BAT还对996上瘾?
- 专为决策树打造,新加坡国立大学&清华大学联合提出快速安全的联邦学习新系统
- DAY FIVE
- Zero code and high return. How to use 40 sets of templates to meet 95% of the reporting needs in the work
- 亚朵三顾 IPO
猜你喜欢

Experiment 4: installing packages from Gui

DAY TWO

【无人机】多无人协同任务分配程序平台含Matlab代码

【精品】pinia 基于插件pinia-plugin-persist的 持久化

求帮助xampp做sqlilab是一片黑

Today, I met a senior test developer from Tencent and saw the ceiling of the foundation

基于jsp+servlet+mysql框架的旅游管理系统【源码+数据库+报告】

Knowledge * review

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

【OFDM通信】基于深度学习的OFDM系统信号检测附matlab代码
随机推荐
The programmer refused the offer because of low salary, HR became angry and netizens exploded
How to find out if the U disk file of the computer reinstallation system is hidden
量子时代计算机怎么保证数据安全?美国公布四项备选加密算法
AVL树到底是什么?
Design a red envelope grabbing system
每年 2000 亿投资进入芯片领域,「中国芯」创投正蓬勃
谷歌百度雅虎都是中国公司开发的通用搜索引擎_百度搜索引擎url
[unmanned aerial vehicle] multi unmanned cooperative task allocation program platform, including Matlab code
Compile logisim
Use source code compilation to install postgresql13.3 database
1000 words selected - interface test basis
什么是响应式对象?响应式对象的创建过程?
服务器SMP、NUMA、MPP体系学习笔记。
[system analyst's road] Chapter 7 double disk system design (service-oriented development method)
[212] what are three methods for PHP to send post requests
Design of short chain
How to implement Lua entry of API gateway
The tutorial of computer reinstallation win10 system is simple and easy to understand. It can be reinstalled directly without U disk
The programmer said, "I'm 36 years old, and I don't want to be rolled, let alone cut."
The important data in the computer was accidentally deleted by mistake, which can be quickly retrieved by this method