STM32 IO口输入高低电平
IO.h文件
#ifndef __IO_H
#define __IO_H#include "stm32f10x.h"void IO_Init(void);
void SetBite_1_0(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, char a);#endif
IO.c文件
#include "IO.h"/*************************************************************************/
/*** @brief IO初始化配置* @retval None*/
void IO_Init()
{//定义结构体,名字自定义GPIO_InitTypeDef GPIO_InitStruct_Out_PP; //配置管脚输出GPIO_InitTypeDef GPIO_InitStruct_IPU; //配置管脚输入//打开管脚时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //打开A组管脚时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //打开B组管脚时钟//管脚配置//管脚位GPIO_InitStruct_Out_PP.GPIO_Pin = GPIO_Pin_8; //GPIO_Pin_0 ~ GPIO_Pin_15//管脚模式 GPIO_InitStruct_Out_PP.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出管脚(组)配置// = GPIO_Mode_IN_FLOATING; //浮空输入管脚(组)配置// = GPIO_Mode_IPU; //上拉输入管脚(组)配置// = GPIO_Mode_IPD; //下拉输入管脚(组)配置// = GPIO_Mode_Out_OD; //开漏输出管脚(组)配置// = GPIO_Mode_AIN; //模拟输入管脚(组)配置// = GPIO_Mode_AF_OD; //复用开漏输出管脚(组)配置// = GPIO_Mode_AF_PP; //复用推挽输出管脚(组)配置//管脚速度GPIO_InitStruct_Out_PP.GPIO_Speed = GPIO_Speed_50MHz; //高速50MHz// = GPIO_Speed_10MHz; //中速10MHz // = GPIO_Speed_2MHz; //低速2MHzGPIO_InitStruct_IPU.GPIO_Pin = GPIO_Pin_1; //第1管脚//上拉输入,这个管脚口是用来输入高低电平的GPIO_InitStruct_IPU.GPIO_Mode = GPIO_Mode_IPU; GPIO_InitStruct_IPU.GPIO_Speed = GPIO_Speed_50MHz;//初始化管脚GPIO_Init(GPIOB, &GPIO_InitStruct_Out_PP);GPIO_Init(GPIOA, &GPIO_InitStruct_IPU);
}/*************************************************************************/
/*** @brief 给单个管脚置位0或1* @param 管脚组:GPIOx: where x can be (A..G) to select the GPIO peripheral.* @param 单个管脚:GPIO_Pin_x:where x can be (0..16) to select the GPIO peripheral.* @param 给单个管脚置位0或1* @retval None*/
void SetBite_1_0(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, char a)
{if(a)GPIO_SetBits(GPIOx, GPIO_Pin); //管脚置高电平函数elseGPIO_ResetBits(GPIOx, GPIO_Pin); //管脚置低电平函数
}
main.c文件
#include "stm32f10x.h"
#include "IO.h"int main()
{//调用初始化函数IO_Init();while(1){ //GPIO_ReadInputDataBit();这个函数的作用是读取管脚电平状态的,返回1或0SetBite_1_0(GPIOB, GPIO_Pin_8, GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1)); //如果外部输入低电平,就亮灯}
}
STM32 IO口输入高低电平相关推荐
- STM32 IO口输出高低电平
IO.h文件 #ifndef __IO_H #define __IO_H#include "stm32f10x.h"void IO_Init(void); void SetBite ...
- STM32 IO口输入输出模式的简洁见解
输入模式 (1) 浮空输入:没有外界电压输入时,电压不确定. (2) 上拉输入:没有外界电压输入时,IO口经过一个上拉电阻接高电压Vcc,再经过施密特触发器转换成1信号,此时为高电平.(无输入,高电平 ...
- STM32 IO口的8中配置方式解读(推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟)
转自:http://blog.csdn.net/u010592722/article/details/45746079 STM32 IO口的8中配置方式: (1)GPIO_Mode_AIN 模拟输入 ...
- stm32 IO口的八种输入输出模式
记录一下stm32 IO口的八种输入输出模式的学习 首先,可以看见stm32的输入输出模式有以上8种 先从简单的开始说吧 上拉输入和下拉输入: 看图: 由上图可见,当IO口设置为上拉输入的时候,IO口 ...
- STM32 IO口双向问题
为什么80%的码农都做不了架构师?>>> 如果需要使用一个GPIO既要用作输入也要用作输出的,可以将该引脚配置为Output-OpenDrain, 同时在引脚上连接一个上拉电阻 ...
- (ESP32学习1)IO的输出高低电平与上下拉输入
使用的是Arduino IDE , 函数非常简单,但有一些需要注意的地方,我第一篇文章是给IDE换主题,大家有不喜欢目前IDE配色主题的可以去看看 先给大家看看ESP32的外设图 开启输出模式的关键字 ...
- [技术讨论]STM32 IO口输出之推挽输出和开漏输出对比
先上一个总览图 众所周知STM32的IO口可配置成输出和输出,其中输入有四种模式,输出也有四种模式,分别如下: 输入: GPIO_Mode_AIN-----------------模拟输入 GPIO_ ...
- STM32 IO口模拟串口通讯
转自:http://ziye334.blog.163.com/blog/static/224306191201452833850647 前阵子,调项目时需要用到低波特率串口通讯(300的波特率),才发 ...
- STM32 IO口的八种模式
[冉冰的成长日记007] STM32 的 IO 口可以由软件配置成如下 8 种模式: 1.输入浮空 2.输入上拉 3.输入下拉 4.模拟输入 5.开漏输出 6.推挽输出 7.推挽式复用功能 8.开漏复 ...
最新文章
- python利器怎么用-UliPad 初体验----python 开发利器
- mysql5.6.4以下不支持多个字段类型为timestamp
- Python字符串和正则表达式中的反斜杠(‘\‘)问题
- 在C语言中是怎么存储的,在C语言中,串的存储方式是()。
- 汽车拼图游戏 - 汽车积木拼图游戏
- Realtek RTL8367S-CG datasheet及用途功能简介
- [Python图像处理] 十四.基于OpenCV和像素处理的图像灰度化处理
- python中一些特殊方法的作用
- Hello Qt(在Linux下编写运行Qt程序)
- 关于Resnet50和ResNeXt50的参数量的简单计算(只考虑卷积层和全连接层)
- python数据库mysql_python数据库(mysql)操作
- 董明珠:格力绝不裁员;腾讯缺席首批游戏版号;iPhone XS Max 口袋自燃 | 极客头条...
- 微信小程序获得微信头像和昵称
- java中的网络入门2(J2SE入门19)
- 聚合(Aggregation)和组合(Composition)的区别
- python乱码怎么办_Python爬虫结果是乱码怎么办?带你了解乱码的原因及其解决办法...
- 如何拒绝国外IP/屏蔽国外IP访问服务器?
- 【实习之T100开发】帆软报表笔记
- java坦克大战论文_(毕业论文)Java版坦克大战.doc
- IP数据报首部的格式:关于标识(identification)、标志(flag)和片偏移