GPIO / LED驱动编程开发

2023-11-14

GPIO / LED---- 驱动开发编程

一般来说,GPIO的Pin都是可选功能的:
GPIO[x] :selects the function of GPIO Pin.
为什么?不要问.

操作:
1.将某一个GPIO选择功能复用为GPIO.
2.将该GPIO选择为GPIO输出.
3.控制该管脚输出高/低电平.

1、电路原理图

   底板电路原理图:x6818bv2.pdf
	 结论,控制LED1的亮或者灭
     实质就是控制导线GPIOC12出现低或者高电平
     
	核心板电路原理图:x4418cv3_release20150713.pdf
   	规则,底板和核心中名称相同的导线是同一条导线
   	方法,拷贝底板中导线的名称  
         	在核心板电路原理图中搜索该名称
   	结论,控制LED1的亮或者灭
         	实质就是控制CPU上的W15输出低或者高电平
         
问题:软件上如何控制W15输出低或者高电平?
     要去商品S5P6818的使用说明书(datasheet/数据手册)中找答案
     SEC_S5P6818X_Users_Manual_preliminary_Ver_0.00.pdf 

2、cpu datasheet
P77
W15, 可选功能1(GPIO)

s5p6818上有537个管脚,其中160个可以作为GPIO

ARM中特殊功能寄存器都是4字节(32bit)
GPIOCALTFN0 0xc001c020
  	[25:24] 01, W15配置为可选功能1(IO功能)
GPIOCOUTENB 0xc001c004
  	[12]  1, W15管脚选择为输出模式
GPIOCOUT    0xc001c000
  	[12]  0/1, W15输出低/高电平
  
总结:软件控制硬件的媒介就是特殊功能寄存器
  特殊功能寄存器每个bit含义要查芯片的手册

C语言回顾:

	1.指针:		
		int a;
		a = 100;
		*(&a) = 100;
		*((int *) 0x10000000) = 100;
		地址 (volatile int *) 0x10000000 
		访问 *(volatile int *) 0x10000000
		
	2.位操作:
		// 错误的 误将其他管脚的功能改变了
		 //应该只改变需要改变的位,其他的位应该保持不变.		
		*(volatile int *) 0x10000000 = 0x01000000; //bit 24位置1,bit 25位置 0 
		// 正确做法 先将 24 25 位置0,再将 24位置1
		 *(volatile int *) 0x10000000 &= 0xfcffffff;   
		 *(volatile int *) 0x10000000 |= 0x01000000;
		 //  标准做法:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GPIO / LED驱动编程开发 的相关文章

  • 5G MEC边缘云组网方案与业务案例分析

    1 MEC概念 MEC边缘云 Multi Access Edge Cloud 是在靠近人 物或数据源头的网络边缘侧部署云资源池和云平台 它在5G时代将扮演重要的角色 MEC边缘云的优势在于 一方面它实现了在更靠近数据源所在的本地网内运算 尽
  • 27、HMAC

    HMAC产生背景 HMAC为什么会被提出来 是MAC的产生有什么缺陷么 HMAC规范的设计是由于存在对将密钥与hash函数相结合的更简单机制的攻击 换言之就是有些将密钥和hash函数结合使用产生MAC的算法容易被攻击 而这种生成消息认证码的
  • 2020最新蚂蚁金服三面+HR一面,面试经验总结及分享

    蚂蚁金服Java岗二面 从项目入手 说说自己参与的项目 技术难度在哪里 Collections sort底层排序方式 排序稳定性 具体场景的排序策略 Http请求过程 DNS解析过程 三次握手四次挥手 简述线程池和并发工具的使用 数据库索引
  • Unitils-使用实践

    简介 Unitils这个Java开源类包的目的是让单元测试变得更加容易和可维护 Unitils构建在DBUnit与EasyMock项目之上并与JUnit和TestNG相结合 支持数据库测试 支持利用mock对象进行测试并提供与Spring和
  • Django后端笔记(二)模型M

    Django后端笔记 模型M Django ORM Django 数据库配置 mysql命令回顾 Django配置使用mysql数据库 切换mysql数据库之后不能启动服务器 复习案例 字段属性和选项 模型属性命名限制 字段类型 选项 查询
  • 换脸方法之FSGAN

    论文 FSGAN Subject Agnostic Face Swapping and Reenactment 官网 https nirkin com fsgan Github https github com YuvalNirkin fs

随机推荐

  • Delphi没落了?!delphi为什么没人用了?!delphi还有人学吗?!告诉你一个事实:现在全世界有300万程序员每天在用Delphi开发各种软件APP应用!

    德克萨斯州奥斯汀 美国商业资讯 跨平台应用程序开发人员生产力工具提供商Embarcadero Technologies Idera Inc 的一个部门 今天发布了RAD Studio 10 3 这个最新版本使开发人员能够使用相同的本机代码库
  • 《MATLAB 神经网络43个案例分析》:第18章 基于SVM的图像分割-真彩色图像分割

    MATLAB 神经网络43个案例分析 第18章 基于SVM的图像分割 真彩色图像分割 1 前言 2 MATLAB 仿真示例 3 小结 1 前言 MATLAB 神经网络43个案例分析 是MATLAB技术论坛 www matlabsky com
  • redis工具类

    redis工具类 很多公司都将redisTemplate进行了封装 封装成业务所需要的RedisUtil工具类方便进行调用 本篇文章总结了redisTemplate常用的一些方法 Redis常用的数据类型 String Hash List
  • ubuntu php v8js,Ubuntu16安装配置LNMP(7.1)环境并安装v8js拓展

    在服务器上安装 Git sudo apt get install git 配置环境 一 安装 PHP 7 1 ppa 方式安装 php7 1 sudo apt get install software properties common 添
  • SpringSecurity------HttpSecurityConfiguration配置类

    SpringSecurity HttpSecurityConfiguration配置类 一 HttpSecurityConfiguration是怎样被加载的 二 HttpSecurityConfiguration主要做了什么 三 HttpS
  • av_register_all和avformat_alloc_context

    av register all 被声明为已否决其实就是av register all 这个方法在FFMPEG 4 0以后将不再推荐使用 而且是非必需的 因此直接注释掉即可 avformat alloc context 用来申请AVForma
  • 后台网页设计

    后台网页设计 陈子龙 2019 5 17 这是一张我自己设计的后台网站的首页图片 我的这张后台网站图中的文字亲密性有点高 板块之间的距离间距都是相差不多的 视觉上给人的感觉也不是很高 在这里插入图片描述 这个logo放的有点大 我的一个交互
  • 内储管理技术——连续分配方式

    早期的操作系统 只支持单进程 为了实现简单 在执行程序之前 操作系统必须将待执行的程序全部装入内存 这就是简单存储管理技术 现代操作系统 支持多进程并发执行 允许进程装入部分程序即可以开始执行 其余部分保留在磁盘上 当执行所需的部分不在内存
  • Android 横向滚动列表 (类似横向ListView)

    示例 布局代码 xml
  • STM32基本IO的寄存器介绍

    STM32基本IO的寄存器介绍 说明 简介 端口配置低寄存器 32位 数据寄存器 32位 置位 复位寄存器 32位 复位寄存器 16位 锁存寄存器 32位 说明 最近自己在学习STM32 跟着原子哥的STM32教学视频学习 参考的资料有来自
  • 一个将军的人生总结

    这十句话 是我几十年间学习 积累 感悟出来的 我认为 做到了 就有益健康 第一句话 结交 两个朋友 一个是运动场 一个是图书馆 到运动场锻炼身体 强健体魄 到图书馆博览群书 不断地 充电 蓄电 放电 第二句话 培养 两种功夫 一个是本分 一
  • 前端基础——DOM

    前端基础学习第六天 文章目录 前端基础学习第六天 一 DOM节点操作 1 节点是什么 2 创建节点 3 添加节点 4 改变节点值 5 删除节点 6 复制 克隆 节点 二 DOM事件流 1 阻止事件冒泡和默认事件 默认行为
  • Ant Design Pro学习记录—ModalForm的使用(一)

    目录 前言 一 ModalForm销毁 二 ModalForm编辑赋值 三 ProFormUploadButton赋值 四 其它 总结 前言 使用了AntDesignPro 仿照TableList创建了自己的列表 列表添加编辑确成了困扰 添
  • py2neo框架学习全网最详细教程

    py2neo框架学习 1 公式模式是语法范式 2 代码模式是实例 可按顺序复制执行 3 该教程全部使用py2neo的内置方法 不使用run运行neo4j 4 涉及所有可能的节点 节点类型 属性 关系 关系类型 属性的增删改查 1 连接图模型
  • 《C语言运算符100例》优先级面试错题

    建议先阅读基础教学 十万字C语言动漫教程 一 前言 运算符优先级一直是让人头疼的东西 趁着 字节取消大小周 的势头来临 通宵整理了一个思维导图出来 希望对你有所帮助 这篇文章 我会仔细分析这张思维导图 所有的 C语言运算符的用法都在这里了
  • minikube踩坑记

    minikube如何使用本地镜像 需要执行 eval minikube docker env 然后再重新打镜像 并运行即可 docker build t foo 0 0 1 kubectl run hello foo image foo 0
  • Android Things——SPI通信

    1 SPI 1 1 概念 SPI是串行外设接口 Serial Peripheral Interface 的缩写 SPI 是一种高速的 全双工 同步的通信总线 并且在芯片的管脚上只占用四根线 节约了芯片的管脚 同时为PCB的布局上节省空间 提
  • 顺序存储结构的插入与删除

    1 获得元素的操作 要获得线性表中第i个元素的值 只要i的数值在数组下标范围内 就把i 1下标的值返回即可 define OK 1 define ERROR 0 define FALSE 0 define TRUE 1 typedef in
  • 线性方程组的直接解法c语言,2 线性方程组的直接解法

    2 1 例题解答 例 2 1 用Gauss消元法解方程组 解 直接建立求解该方程组的M文件Gauss m如下 求解例题2 1 高斯法求解线性方程组Ax b A为输入矩阵系数 b为方程组右端系数 方程组的解保存在x变量中 先输入方程系数 A
  • GPIO / LED驱动编程开发

    GPIO LED 驱动开发编程 一般来说 GPIO的Pin都是可选功能的 GPIO x selects the function of GPIO Pin 为什么 不要问 操作 1 将某一个GPIO选择功能复用为GPIO 2 将该GPIO选择