关于GPIO的内部结构及编程步骤
当按键外接电源,按下按键IO输出为高电平时,此时需要设置未按下时为低电平,所以需要配置成下拉输入
当按键外接电源,按下按键IO输出为低电平时,此时需要设置未按下时为高电平,所以需要配置成上拉输入
推挽输出既能输出高电平也能输出低电平。
什么叫端口复用?
IO口既可以用作通用输入输出高低电平,也可以通过配置相应引脚作为其他功能使用,
如00时通用IO口,01时定时器通道输出,11时串口通讯等。
作用:最大限度利用端口资源。
什么是端口重映射?
就是把某些功能引脚映射到其他引脚。
如PA9,PA10的串口功能可以映射到PB6,PB7上面,即可以通过配置引脚使PB6,PB7具有串口功能。
作用:布线方便
每组GPIOx有16个IO口PA0-PA15,配置一个IO口需要4位,则每组需要64位,则需要2个32位寄存器来配置。
如端口配置低寄存器GPIOx_CRL和高寄存器GPIOx_CRH,每个寄存器有32个位,其中每四个位控制一个IO口,
CRL控制0-7,CRH控制8-15的IO口。下面一个格代表两位,共32位。
所有IO口都可以作为中断输入。
用固件库点亮LED的过程(以PB0为例)
1.定义一个GPIO结构体(GPIO_InitTypeDef)类型的变量
GPIO_InitTypeDef GPIO_InitStructure;
2.打开GPIO的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
3.将GPIO结构体变量的成员进行赋值:端口、模式、翻转速度(定义的内容位于GPIO.h文件)
GPIOB_Pin0.GPIO_Pin = GPIO_Pin_0;
GPIOB_Pin0.GPIO_Mode = GPIO_Mode_Out_PP;
GPIOB_Pin0.GPIO_Speed = GPIO_Speed_50MHz;
4.GPIO初始化
GPIO_Init(GPIOB, &GPIO_InitStructure);
5.将相应的引脚置高、置低
GPIO_ResetBits(GPIOB, GPIO_Pin_0);
GPIO_SetBits(GPIOB, GPIO_Pin_0);
关于GPIO的内部结构及编程步骤相关推荐
- STM32编程(一)STM32 GPIO配置的4大步骤
GPIO配置的4大步骤 前言:只要初始化了GPIO完成后 在主函数中调用GPIO_SetBits(xxxx),GPIO_ResetBits(xxxx)就可以控制它的引脚了. 1 定义GPIO引脚的结 ...
- 【libevent】libevent库学习总结(二)——编程步骤
一.libevent编程步骤 0.分配并初始化event_base,两种方法 0.1 event_base_new:线程安全,代替event_init: 0.2 event_init:线程不安全,不推 ...
- 【示例】Lucene查询索引库编程步骤
Lucene查询索引库编程步骤
- 【示例】Lucene创建索引库编程步骤
[示例]Lucene创建索引库编程步骤
- vs2013 matlab 教程,Matlab 2016a和VS2013混合Dll编程步骤总结
Matlab 2016a和VS2013混合Dll编程步骤 1. 从Matlab导出.m文件为Dll文件: Step1:将Matlab工作路径转为目标.m文件所在文件夹,在控制栏输入"mex ...
- 三丰三坐标编程基本步骤_ABB 机器人 | 输送链跟踪配置和编程步骤
ABB&ROBOT 使用输送链跟踪功能的配置和编程步骤 输送链跟踪硬件 安装DSQC377A(B)模块 安装编码器 安装触发开关 安装机器人校准探针?? 安装输送线上的校准针?? 连接编码器线 ...
- 【嵌入式07】寄存器映射原理详解,GPIO端口的初始化设置步骤
本文主要介绍STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化设置步骤. 一.STM32F103系列芯片的地址映射和寄存器映射原理 1.什么是寄存器? 2.地址映射和寄存器映射 ...
- 糖儿飞教你学C++ Socket网络编程——5.套接字编程步骤与函数
TCP是一个面向连接的传输层协议,提供高可靠性的字节流传输服务,主要用于一次传输要交换大量报文的情形.为了维护传输的可靠性,TCP增加了许多开销:例如确认.流量控制.计时器以及连接管理等.TCP协议的 ...
- 库卡机器人编程权限_KUKA库卡机器人实操技巧:信息编程(中)-信息编程步骤(除对话信息)...
Hi 大家好,你们的 小KU老师又来了,上堂课给大家介绍了KUKA库卡机器人控制柜KR C4 Smartpad 显示的图标所代表的信息类型!咦?我咋听到有些小伙伴说忘记讲课内容啦,别担心,可戳下方补课 ...
- 凌波微步Flink——Flink的技术逻辑与编程步骤剖析
转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/95459606 本文出自[我是干勾鱼的博客] Ingredients: Java: ...
最新文章
- 90 后 CTO 创业 6 年,做了一件改变互联网的“小事”
- 华一银行开发安全内部培训圆满结束
- Mysql安装注意问题
- 求二叉树指定结点到根的路径c语言,二叉树根节点到叶子结点和为指定值的路径...
- vue脚手架 全局变量可以是变量吗_Vue.js2 全局变量的设置方法
- 三个线程按顺序输出数字
- 面试题——Java虚拟机
- java接口自动化测试的搭建_java接口自动化(一) - 接口自动化测试整体认知 - 开山篇(超详解)...
- 创新元旦新年PSD分层海报,新气象开启!
- 框架下载_最新安卓XDA框架插件下载仓库
- codeforces 664B B. Rebus(乱搞题)
- 数据科学包10-pandas高级内容之时间序列
- 自动化运维工具SaltStack
- python 导入excel至oracle,Python读取Excel数据并将其导入Oracle数据库,导入到
- cad2014点击工具栏闪退_cad2012闪退,点工具栏闪退但用快捷键画图不闪退
- 超声波传感器for蓝桥杯
- 2021年,shopee虾皮一件代发模式的优势和背后风险是什么?
- 解决Windows XP 系统下,用户登录一直循环提示激活
- php蓝牙连接不上,Mac蓝牙不可用怎么办?苹果电脑Mac蓝牙连不上i
- linux 命令 ps的作用,Linux之ps命令
热门文章
- 【qstock量化】数据篇之宏观指标和财经新闻文本
- 操作系统--6设备管理
- 计算机网络图标在哪里照,网络设备图标-电脑上的网络图标怎么显示
- 飞机有“站票”?英乘客机票座位不存在 无奈坐地板
- 黑白双煞拆装箱 -- 八大基本类型及其封装类
- 最新多目标跟踪算法综述-2020年08月23日
- 哈夫曼树的构造与哈夫曼编码
- FileNotFoundError: [Errno 2] No such file or directory: ‘./train/hazy/hazy‘
- 服务器查看ilo信息,服务器ilo默认地址
- SQL Server 2008 Service Pack 1 - CTP 发布