历史上的今天
今天是:2025年04月11日(星期五)
2019年04月11日 | stm32—GPIO操作(库函数)
2019-04-11 来源:eefocus
难得有时间,最近想写一下stm32的入门基础。
GPIO的8种方式
1、浮空输入GPIO_IN_FLOATING ——浮空输入,可以做KEY识别,RX1
2、带上拉输入GPIO_IPU——IO内部上拉电阻输入
3、带下拉输入GPIO_IPD—— IO内部下拉电阻输入
4、模拟输入GPIO_AIN ——应用ADC模拟输入,或者低功耗下省电
5、开漏输出GPIO_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能
6、推挽输出GPIO_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
7、复用功能的推挽输出GPIO_AF_PP ——片内外设功能(I2C的SCL,SDA)
8、复用功能的开漏输出GPIO_AF_OD——片内外设功能(TX1,MOSI,MISO.SCK.SS)
下面是GPIO的初始化
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; //端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M
GPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化GPIOA
GPIO操作的函数
GPIO_SetBits(GPIOA,GPIO_Pin_0 | GPIO_Pin_1); //设置PA0--PA1高电平
GPIO_ResetBits(GPIOA,GPIO_Pin_0 | GPIO_Pin_1); //设置PA0--PA1低电平
GPIO_WriteBit(GPIOA,GPIO_Pin_3,1); //设置PA3高电平
GPIO_WriteBit(GPIOA,GPIO_Pin_3,0); //设置PA3低电平
GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1) //获取PA1引脚电平0或者1
史海拾趣
|
1.谈谈火花塞 一般用车者相信都会到维修站做一些基本的保养维修工作,如换机油、火花塞等,但阁下是否认识到这些简单的东西,如果选择得宜的话,对爱车的保护及性能,将有很大的功用。 火花塞 汽车改装的基本动作,是从引擎的点火系 ...… 查看全部问答> |
|
HotBIOS之零耗时任务切换的研究论证及大略实现方法(HotPower@126.com) 菜农心目中的零耗时任务切换就是应该和裸奔一样不准折腾SP.否则违规. 那么切换时高就绪任务的搜索不算违规,因为这是必须做的.否则就不叫OS了. OS的任务一般可划分为4个阶段 ...… 查看全部问答> |
|
设计人员在考虑无源器件时,他们想到的是电感电容的生产容限,一般为± 20% 或±10%。这在理论上是对的,但在实际应用中却不然。本文介绍电容电感易受影响的一些参数以及系统设计人员必须了解的知识,并讨论如何为最小但最高效的便携式电源系统解决 ...… 查看全部问答> |
|
有个交流电源, 电源输出的一条线(编号为1号)电势按正弦曲线规律变化(0变化到+5v变化到0变化到-5v),电源输出的另一条线(编号为2号)电势一直为0, 显然,如果电源接个电阻构成闭合电路,电流的大小,方向都发生变化。 现在我 ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 03:42 编辑 第一、 具有最大功率点跟踪(MPPT)功能 这个问题,我们在附件中有一篇文章详细叙说了这个事情。 第二、 具有频率跟踪功能 可以使用6N136进行捕捉过零点的信号 然后将信号进行处理,就得到了频 ...… 查看全部问答> |
|
ADS1.2编译 错误提示implicit cast of pointer to non-equal pointer #define GSM_G // System Head File #include <stdarg.h>#include <string.h>#include <stdlib.h>#include <stdio.h>#include <ctype.h> // User Head File #include \"option.h\"#include \"2440addr.h\"#inclu ...… 查看全部问答> |




