GPIO引脚操作方法概述

  1. 硬件知识_LED原理图
  2. 不同主芯片控制GPIO引脚的方法概述
  3. 具体单板控制GPIO引脚的方法详解
  4. 具体单板LED程序的编写与实验
  5. 汇编与机器码
  6. 编程知识_进制
  7. 编程知识_字节序_位操作
  8. 编写C程序控制LED
  9. 解析C程序的内部机制
  10. 完善LED程序
  11. 编写按键控制LED的程序

GPIO: General-purpose input/output,通用的输入输出口

1.GPIO模块一般结构:

a.有多组GPIO,每组有多个GPIO
b.使能:电源/时钟
c.模式(Mode):引脚可用于GPIO或其他功能
d.方向:引脚Mode设置为GPIO时,可以继续设置它是输出引脚,还是输入引脚
e.数值:对于输出引脚,可以设置寄存器让它输出高、低电平
对于输入引脚,可以读取寄存器得到引脚的当前电平

2.控制原理


3.GPIO寄存器操作-程序配置过程:

原则不要影响其他位
过程
使能,工作模式,输入输出方向,高低电平
a.芯片手册一般有相关章节,用来介绍:power/clock
可以设置对应寄存器使能某个GPIO模块(Module)
有些芯片的GPIO是没有使能开头的,即它总是使能的
b.一个引脚可以用于GPIO、串口、USB或其他功能,
有对应的寄存器来选择引脚的功能
c.对于已经设置为GPIO功能的引脚,有方向寄存器用来设置它的方向:输出、输入
d.对于已经设置为GPIO功能的引脚,有数据寄存器用来写、读引脚电平状态

GPIO寄存器的2种常用操作方法:
原则:不能影响到其他位

a.直接读写:读出、修改对应位、写入
要设置bit n:
val = data_reg;
val = val | (1<<n);
data_reg = val;
要清除bit n:
val = data_reg;
val = val & ~(1<<n);
data_reg = val;

b.set-and-clear protocol:
set_reg, clr_reg, data_reg 三个寄存器对应的是同一个物理寄存器,
要设置bit n:set_reg = (1<<n);默认第0位置1,然后移动
要清除bit n:clr_reg = (1<<n);默认第0位置0,然后移动

访问寄存器方式

程序框架


编译结果

Makefile文件

4.GPIO的其他功能:防抖动、中断、唤醒:

后续章节再介绍

代码


void delay(volatile int d)
{while(d--);
}int main(void)
{volatile unsigned int *pReg;/*必须加volatile,防止变量被优化*//* 使能GPIO5: 默认使能 *//* 把GPIO5_3设置为GPIO功能 */pReg = (volatile unsigned int *)(0x02290000 + 0x14);*pReg |= (0x5);/* 把GPIO5_3设置为输出引脚*/pReg = (volatile unsigned int *)(0x020AC004);*pReg |= (1<<3);//一位的用左移右移,多位的直接写就好了pReg = (volatile unsigned int *)(0x020AC000);while (1){/* 设置GPIO5_3输出1 */*pReg |= (1<<3);delay(1000000);/* 设置GPIO5_3输出0 */*pReg &= ~(1<<3);delay(1000000);        }return 0;
}

驱动led --GPIO控制相关推荐

  1. 二、点亮LED(GPIO控制)

    二.点亮LED(GPIO控制) 文件状态: [ ] 草稿 [ ] 正在修改 [ √ ] 正式发布 文件标识: 当前版本: V1.1 作 者: Skymixos 完成日期: 2022年10月02日 版 ...

  2. 巧用1个GPIO控制2个LED显示4种状态

    很多电子产品有状态指示灯,比如电视机: 待机状态亮红灯 开机状态亮绿灯 实现起来很简单,微控制器MCU的两个GPIO分别控制就行: 不过资源总是紧张的,有时候会碰到GPIO不够用的情况. 如果只用1个 ...

  3. K210应用2-使用GPIO控制LED状态

    使用gpio控制led 实验目的 本次主要应用K210最基础的功能,了解FPIOA引脚映射,以及GPIO设置.该节验证方式为通过控制LED的亮灭来进行验证. 实验准备 1).带发光二极管(LED)的K ...

  4. 树莓派开发笔记(五):GPIO引脚介绍和GPIO的输入输出使用(驱动LED灯、检测按键)

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...

  5. Linux嵌入式驱动开发13——ioctl接口(gpio控制使用)

    文章目录 全系列传送门 引言 什么是unlocked_ioctl接口? unlocked_ioctl和read/write函数有什么相同和不同 unlocked_ioctl接口命令规则 命令的合成宏与 ...

  6. NRF51822开发笔记-5.nRF51822裸机实验GPIO输出驱动LED

    NRF51822开发笔记-5.nRF51822裸机实验GPIO输出驱动LED 一.例程分析 1.多个GPIO输出模式配置函数 2.单个GPI0输出模式配置函数 GPIO输出高电平函数 二.程序设计 一 ...

  7. ARM裸机的知识总结(4) ------- 利用GPIO控制LED

    一.一步步点亮LED1_硬件工作原理及原理图查阅 1.LED物理特性介绍 LED本身有2个接线点,一个是LED的正极,一个是LED的负极.LED这个硬件的功能就是点亮或者不亮,物理上想要点亮一颗LED ...

  8. 终极教程,带具体实验现象,1个GPIO控制2个LED显示4种状态,欢迎讨论!

    芯片之家前几天发了一篇文章,讨论1个GPIO控制2个LED显示4种状态,并没有带具体的实验现象,有点小遗憾: 绝妙!1个GPIO控制2个LED显示4种状态,什么?你不信?(点击阅读) 今天在卓老师公众 ...

  9. 控制led闪烁次数_单片机驱动LED灯的进阶之路

    对于大多数单片机的学习者或者是从事单片机行业的工程师来说,单片机驱动LED闪烁起来的时候,基本都是我们入坑的开始,同时当时的那种兴奋与喜悦都是难以忘怀的,从LED灯亮起,到闪烁,再到各种流水灯,能开心 ...

最新文章

  1. Javascript 中的神器——Promise
  2. Android系统服务
  3. CSS的Grid网格布局
  4. java xfire下载_XFIRE教程 PDF 下载
  5. python 将图片转换成像素画_Canvas 实现位图转像素画
  6. 投影仪是计算机的基本配置6,关于网络投影仪的六个问题
  7. 解决SVN提交代码时的错误:“Could not execute PROPPATCH”
  8. java实体类的功能_(转载) java实体类的作用
  9. 小米球Ngrok-使用方法
  10. php接收post数据 json数据,PHP接收post数据并解析json的简单实例
  11. FFmpeg合并ts文件为mp4文件
  12. ZA7783是一颗将单路MIPI DSI信号转换成单路LVDS/TTL信号的转接芯片
  13. Python 下载哔哩哔哩视频
  14. Python概率分布大全(含可视化)
  15. 备份恢复Lesson 10. Restore and Recovery Concepts
  16. vue中全局注册和局部注册
  17. web打印插件 js打印插件 网页打印插件
  18. 机械手组装调试系列教程(一)——开题篇
  19. nanopi emmc定制系统量产步骤
  20. Linux字体库问题(PDF转图片中文字缺失)

热门文章

  1. Android终端硬件通讯总结(串口通讯、Usb Com、Usb、蓝牙、Wifi)
  2. 蓝桥试题 算法训练 天数计算 JAVA
  3. Unity2020找不到Device Simulator
  4. 办公软件小技巧:Excel表格自动排序
  5. ascii码中的A的代码是什么?
  6. Eclipse控制台中的中文输出乱码问题
  7. 关于技术美术的一些个人理解
  8. Linux存储性能观测——vmstat命令详解
  9. 浅谈带宽,网速和流量之间的关系
  10. word 表格不跨行断页