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口输入高低电平相关推荐

  1. STM32 IO口输出高低电平

    IO.h文件 #ifndef __IO_H #define __IO_H#include "stm32f10x.h"void IO_Init(void); void SetBite ...

  2. STM32 IO口输入输出模式的简洁见解

    输入模式 (1) 浮空输入:没有外界电压输入时,电压不确定. (2) 上拉输入:没有外界电压输入时,IO口经过一个上拉电阻接高电压Vcc,再经过施密特触发器转换成1信号,此时为高电平.(无输入,高电平 ...

  3. STM32 IO口的8中配置方式解读(推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟)

    转自:http://blog.csdn.net/u010592722/article/details/45746079 STM32  IO口的8中配置方式: (1)GPIO_Mode_AIN 模拟输入 ...

  4. stm32 IO口的八种输入输出模式

    记录一下stm32 IO口的八种输入输出模式的学习 首先,可以看见stm32的输入输出模式有以上8种 先从简单的开始说吧 上拉输入和下拉输入: 看图: 由上图可见,当IO口设置为上拉输入的时候,IO口 ...

  5. STM32 IO口双向问题

    为什么80%的码农都做不了架构师?>>>    如果需要使用一个GPIO既要用作输入也要用作输出的,可以将该引脚配置为Output-OpenDrain, 同时在引脚上连接一个上拉电阻 ...

  6. (ESP32学习1)IO的输出高低电平与上下拉输入

    使用的是Arduino IDE , 函数非常简单,但有一些需要注意的地方,我第一篇文章是给IDE换主题,大家有不喜欢目前IDE配色主题的可以去看看 先给大家看看ESP32的外设图 开启输出模式的关键字 ...

  7. [技术讨论]STM32 IO口输出之推挽输出和开漏输出对比

    先上一个总览图 众所周知STM32的IO口可配置成输出和输出,其中输入有四种模式,输出也有四种模式,分别如下: 输入: GPIO_Mode_AIN-----------------模拟输入 GPIO_ ...

  8. STM32 IO口模拟串口通讯

    转自:http://ziye334.blog.163.com/blog/static/224306191201452833850647 前阵子,调项目时需要用到低波特率串口通讯(300的波特率),才发 ...

  9. STM32 IO口的八种模式

    [冉冰的成长日记007] STM32 的 IO 口可以由软件配置成如下 8 种模式: 1.输入浮空 2.输入上拉 3.输入下拉 4.模拟输入 5.开漏输出 6.推挽输出 7.推挽式复用功能 8.开漏复 ...

最新文章

  1. python利器怎么用-UliPad 初体验----python 开发利器
  2. mysql5.6.4以下不支持多个字段类型为timestamp
  3. Python字符串和正则表达式中的反斜杠(‘\‘)问题
  4. 在C语言中是怎么存储的,在C语言中,串的存储方式是()。
  5. 汽车拼图游戏 - 汽车积木拼图游戏
  6. Realtek RTL8367S-CG datasheet及用途功能简介
  7. [Python图像处理] 十四.基于OpenCV和像素处理的图像灰度化处理
  8. python中一些特殊方法的作用
  9. Hello Qt(在Linux下编写运行Qt程序)
  10. 关于Resnet50和ResNeXt50的参数量的简单计算(只考虑卷积层和全连接层)
  11. python数据库mysql_python数据库(mysql)操作
  12. 董明珠:格力绝不裁员;腾讯缺席首批游戏版号;iPhone XS Max 口袋自燃 | 极客头条...
  13. 微信小程序获得微信头像和昵称
  14. java中的网络入门2(J2SE入门19)
  15. 聚合(Aggregation)和组合(Composition)的区别
  16. python乱码怎么办_Python爬虫结果是乱码怎么办?带你了解乱码的原因及其解决办法...
  17. 如何拒绝国外IP/屏蔽国外IP访问服务器?
  18. 【实习之T100开发】帆软报表笔记
  19. java坦克大战论文_(毕业论文)Java版坦克大战.doc
  20. IP数据报首部的格式:关于标识(identification)、标志(flag)和片偏移

热门文章

  1. 计算机组成原理移位图,计算机组成原理移位运算实验报告.doc
  2. 英雄联盟CG《安妮:从前》的美术创作分享
  3. WinMount开发者刘涛涛
  4. 计算机组装与维护作文,智慧职教计算机组装与维护答案
  5. 国企,外企,还是民企?
  6. 一键快速构建 vue-electron 项目
  7. openoffice和libreoffice启动和下载
  8. dspic33e iolock/IOL1WAY 相关说明和注意事项
  9. 图片底部边距清除代码
  10. 做前端的我准备玩Arduino