当前位置:网站首页>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);
}
}
边栏推荐
- DAY THREE
- 服务器SMP、NUMA、MPP体系学习笔记。
- Compile logisim
- Oracle对表进行的常用修改命令
- 微信小程序uploadfile服务器,微信小程序之wx.uploadFile[通俗易懂]
- Experiment 6: installing eve-ng
- Gradle知識概括
- 专为决策树打造,新加坡国立大学&清华大学联合提出快速安全的联邦学习新系统
- 在docker中快速使用各个版本的PostgreSQL数据库
- [unmanned aerial vehicle] multi unmanned cooperative task allocation program platform, including Matlab code
猜你喜欢

DAY FIVE

MATLIB reads data from excel table and draws function image

The method of reinstalling win10 system is as simple as that
![[communication] optimal power allocation in the uplink of two-layer wireless femtocell network with matlab code](/img/47/741b89d94a2b0003937f32bdedfa19.png)
[communication] optimal power allocation in the uplink of two-layer wireless femtocell network with matlab code

谁说新消费品牌大溃败?背后有人赢麻了

Yaduo Sangu IPO

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

Zero code and high return. How to use 40 sets of templates to meet 95% of the reporting needs in the work

设计一个抢红包系统

DevOps可以帮助减少技术债务的十种方式
随机推荐
(LeetCode)两数之和
设计一个抢红包系统
PostgreSQL highly available repmgr (1 master 2 slave +1witness) + pgpool II realizes master-slave switching + read-write separation
Gradle knowledge generalization
STM32 enters and wakes up the stop mode through the serial port
[communication] optimal power allocation in the uplink of two-layer wireless femtocell network with matlab code
SQL的一种写法,匹配就更新,否则就是插入
(leetcode) sum of two numbers
The tutorial of computer reinstallation win10 system is simple and easy to understand. It can be reinstalled directly without U disk
什么是响应式对象?响应式对象的创建过程?
[212] what are three methods for PHP to send post requests
Pdf document signature Guide
《数字经济全景白皮书》保险数字化篇 重磅发布
Experiment 6: installing eve-ng
openresty ngx_ Lua subrequest
I've been laid off, and I'll lose money for everything. The days when I once made a monthly salary of 20000 are not coming back
编译logisim
【212】php发送post请求有哪三种方法
【CVPR 2022】半监督目标检测:Dense Learning based Semi-Supervised Object Detection
基于SSM框架实现的房屋租赁管理系统