GPIO初始化程序

以GPIOA的PIN口为例
void GPIO_InitConfig()
{
/* GPIOA挂载在APB2总线上,需要开启APB2的时钟才能使用*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_x;(x= 0~15)
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_GPIO_Mode_Out_PP;
GPIO_Init(GPIOA,&GPIO_InitStruct );
/* 将相关配置初始化 */
}
注意:函数的这些结构体成员是stm32的官方库文件提供的,相关配置信息可以在对应的头文件找到。

mode:

GPIO_Mode_AIN = 0x0,
GPIO_Mode_IN_FLOATING = 0x04,
GPIO_Mode_IPD = 0x28,
GPIO_Mode_IPU = 0x48,
GPIO_Mode_Out_OD = 0x14,
GPIO_Mode_Out_PP = 0x10,
GPIO_Mode_AF_OD = 0x1C,
GPIO_Mode_AF_PP = 0x18,

speed:(输入时不需要配置)

GPIO_Speed_10MHz = 1,
GPIO_Speed_2MHz,
GPIO_Speed_50MHz,

GPIO的一些函数使用

(函数可以在对于头文件的最后面找到,按F12可以查看该函数的说明)
/* 清除初始化函数 /
void GPIO_DeInit(GPIO_TypeDef
GPIOx);
/* GPIO初始化函数 /
void GPIO_Init(GPIO_TypeDef
GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
/* GPIO结构体初始化函数 /
void GPIO_StructInit(GPIO_InitTypeDef
GPIO_InitStruct);
/* 读取端口数据位 /
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef
GPIOx, uint16_t GPIO_Pin);
/* 读取端口组的并行数据 /
uint16_t GPIO_ReadInputData(GPIO_TypeDef
GPIOx);
/* 读取输出模式下端口的数据位 /
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef
GPIOx, uint16_t GPIO_Pin);
/* 读取输出模式下端口组的并行数据 /
uint16_t GPIO_ReadOutputData(GPIO_TypeDef
GPIOx);
/* GPIO端口置为函数(高电平) /
void GPIO_SetBits(GPIO_TypeDef
GPIOx, uint16_t GPIO_Pin);
/* GPIO端口复位函数(低电平) /
void GPIO_ResetBits(GPIO_TypeDef
GPIOx, uint16_t GPIO_Pin);
/* GPIO端口写数据函数位 /
void GPIO_WriteBit(GPIO_TypeDef
GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
/* GPIO端口组写数据函数 /
void GPIO_Write(GPIO_TypeDef
GPIOx, uint16_t PortVal);
/* GPIO端口锁定函数,即使复位也不变化 /
void GPIO_PinLockConfig(GPIO_TypeDef
GPIOx, uint16_t GPIO_Pin);

GPIO的初始化程序相关推荐

  1. GPIO端口初始化设置,STM32F103点亮LED流水灯过程

    文章目录 一.STM32F103系列芯片地址映射和寄存器映射原理 1.什么是寄存器 2.地址映射和寄存器映射 3.寄存器地址查找 二.GPIO端口初始化设置 1.GPIO简介 2.配置时钟 3.输入输 ...

  2. 从头开始写STM32F103C8T6驱动库(二)——编写系统初始化程序,配置时钟树

    系列文章目录 Github开源地址 从头开始写STM32F103C8T6驱动库(一)--STM32CubeMX创建并调整工程结构 从头开始写STM32F103C8T6驱动库(二)--编写系统初始化程序 ...

  3. 迅为4412开发板Linux驱动教程之GPIO的初始化

    视频下载地址:http://pan.baidu.com/s/1c06oiti GPIO的初始化 • 在内核源码目录下使用命令"ls drivers/gpio/*.o",可以看到&q ...

  4. 浏览器默认标签样式总结及css初始化程序(转)

    浏览器默认标签样式总结及css初始化程序 html中的大部分的标签都有一些糟糕的样式,有的是标签天然自带的,有的是浏览器默认设置的,我们在写网页时,这些默认的样式就会时不时的跳出来捣一下乱,搞得我们很 ...

  5. GPIO模拟I2C程序实现

    GPIO模拟I2C程序实现. I2C是由Philips公司发明的一种串行数据通信协议,仅使用两根信号线:SerialClock(简称SCL)和SerialData(简称SDA).I2C是总线结构,1个 ...

  6. 如何使用Spring初始化程序创建Spring Boot项目

    你好朋友, 如果您以前使用过Spring框架,则必须意识到,即使要开始使用基本的Spring功能也需要付出一些真正的努力.有了Spring Boot,最初的麻烦就消失了,您可以在数分钟内开始使用. 欢 ...

  7. STM32单片机在Keil5下仿真的问题解决及GPIO口初始化、使用

    STM32单片机在Keil5下仿真的问题解决及GPIO口初始化.使用 参考文章: (1)STM32单片机在Keil5下仿真的问题解决及GPIO口初始化.使用 (2)https://www.cnblog ...

  8. C ++中的初始化程序列表– std :: initializer_list

    In this article, we'll take a look at using initializer lists in C++ (std::initializer_list). 在本文中,我 ...

  9. pic16f1829 c语言,PIC16F1829 TIMER2初始化程序及应用

    //#include "pic_timer246.h" //timer2 预分频值 #defineTIMER2_1DIV1(0<<0) #defineTIMER2_1D ...

最新文章

  1. html5毕业作品开场白,毕业典礼主持人开场白
  2. HOMEBREW安装之后需要需要把他安装到路径之中
  3. go corn定时器
  4. 苹果面试8大难题及答案
  5. Flink on Zeppelin (4) - 机器学习篇
  6. Linux - xshell上传文件报错乱码
  7. 性能优化篇(5):css 内部 or 外部,该如何选择?
  8. CV Code | 本周计算机视觉新出开源代码汇总(含目标检测、深度估计、视频识别、网络加速算法等)...
  9. 表情识别(一)--传统方法概述
  10. 什么是SDN,为什么要有SDN,SDN有什么安全问题
  11. ElasticSearch学习总结(基础篇,可学习,可复习)
  12. 世界知名游戏公司简介(国内,欧美,日韩)
  13. 动词ing形式的5种用法_动词-ing形式用法归纳
  14. MTTF,MTBF,MTTF
  15. 代码版刘畊宏本草纲目健身操【内附源码/demo】
  16. shift+右键,没有“在此处打开命令窗口”选项
  17. 8000 sentences of oral English(four)
  18. coreldraw x8段落_CorelDRAW文本段落如何调整行距
  19. Java-异常处理(编译时异常、运行时异常及处理机制,自定义异常)
  20. 多官能度可聚会型光引发剂(图文说明)

热门文章

  1. Photoshop初学者必须知道的十课
  2. 归并排序(基于顺序容器vector_递归;基于数组array_递归_非递归)
  3. Ubuntu 20 安装包下载(清华镜像)
  4. 手动创建简单CHM帮助文件
  5. 近期必读的18篇情感计算相关论文-AMiner
  6. vector的初始化_C++的vector使用方法
  7. Android图片资源处理
  8. java为什么不能多继承_java为什么不支持多继承
  9. JAVA入门算法题(十一)
  10. 消除 a标签 点击后边框