GPIO实验(lv9-day12)
文章目录
- GPIO实验(lv9-day12)
- 1 GPIO简介
- 2 LED实验步骤
- 2.1 通过电路原理图分析LED的控制逻辑
- 2.2 通过电路原理图查找LED与Exynos4412的连接关系
- 2.3通过数据手册分析GPI0中哪些寄存器可以控制LED2
- 2.3.1 GPX2CON 的相关配置(设置GPIO输入模式 还是输出模式)
- 2.3.2 GPX2DAT (设置GPIO输出高电平或者低电平)
- 2.3.3 通过程序去操控对应的寄存器完成对LED的控制
- 3 实现led的闪烁
GPIO实验(lv9-day12)
1 GPIO简介
GPI0 (General-purpose input/output)即通用型输入输出,GPI0可以控制连接在其之上的引脚实现信号的输入和输出。芯片的引脚与外部设备相连,从而实现与外部硬件设备的通讯、控制及信号采集等功能。
2 LED实验步骤
1.通过电路原理图分析LED的控制逻辑
2.通过电路原理图查找LED与Exynos4412的连接关系
3.通过数据手册分析GPI0中哪些寄存器可以控制LED
4、通过程序去操控对应的寄存器完成对LED的控制
2.1 通过电路原理图分析LED的控制逻辑
通过原理图可知F14412LED为高电平导通.
2.2 通过电路原理图查找LED与Exynos4412的连接关系
LED2连接在Exynos4412的GPX2_7引脚上。
2.3通过数据手册分析GPI0中哪些寄存器可以控制LED2
GPX2CON 用于控制GPX2的相关功能的配置
GPX2DAT 用于储存GPX2的相关数据
GPX2PUD 控制上下拉
GPX2DRV 控制GPIO的驱动能力。
2.3.1 GPX2CON 的相关配置(设置GPIO输入模式 还是输出模式)
因为我们控制的是LED所以GPX2_ 7要设置为输出模式,GPX2CON的【31:28】设为0x01
2.3.2 GPX2DAT (设置GPIO输出高电平或者低电平)
由上面划线的那句话可知GPIO输出高/低电平和GPX2DAT的位是一样的,即GPX2_7输出高电平GPX2DAT的值位0x80.
2.3.3 通过程序去操控对应的寄存器完成对LED的控制
汇编程序
.text
_start:
LED_CONFIG:@GPX2CON的地址LDR R2, =0x11000c40 @设置为输出模式LDR R1,=0x10000000@向地址写入数据STR R1,[R2]
LEDOFF:LDR R2,=0x11000c44 LDR R1,=0x00000000STR R1,[R2]
STOP:B STOP
Makefile文件
3 实现led的闪烁
代码
1 .text2 _start:3 @主函数4 MAIN:5 @初始化配置6 BL LED_CONFIG7 @死循环8 LOOP:9 @关10 BL LEDOFF11 @延时12 BL DEALY13 @开14 BL LEDON15 @延时16 BL DEALY17 B LOOP18 @LED初始化配置19 LED_CONFIG:20 @GPX2CON的地址21 LDR R2, =0x11000c4022 @设置为输出模式23 LDR R1, =0x1000000024 @向地址写入数据25 STR R1,[R2]26 MOV PC,LR27 @LED开28 LEDON:29 LDR R2,=0x11000c4430 LDR R1,=0x0000008031 STR R1,[R2]32 MOV PC,LR33 @LED关34 LEDOFF:35 LDR R2,=0x11000c4436 LDR R1,=0x0000000037 STR R1,[R2]38 MOV PC,LR39 @延时函数40 DEALY:41 LDR R1,=100000042 L:43 SUB R1,R1,#144 CMP R1,#045 BNE L46 MOV PC,LR4748 STOP:49 B STOP50 .end
GPIO实验(lv9-day12)相关推荐
- CH32Vx 之GPIO实验
CH32Vx 之GPIO实验 目录 如何使用外部中断 GPIO如何使用 Main函数 目录 配合中断以及开发板的按钮实现LED的开灭,涉及知识点中断以及GPIO控制 如何使用外部中断 根据手册知识了解 ...
- 从51到ARM裸机开发实验(006)Exynos4412 GPIO实验
本次实验基于Tiny4412开发板,开发板上有四个可编程控制的LED.四个按键.来实现这样一种场景:每个按键控制一盏LED,每按一次则对应的LED状态发生改变,按一次开灯,再按一次关灯.核心控制为三星 ...
- GPIO实验之c语言
上一章节进行实验使用的是汇编进行编程的,本次实验是使用c语言进行编写的. (1)点亮一个led灯 1)启动文件: crt.S .text .global _start _star ...
- 从51到ARM裸机开发实验(003) AT89C51 GPIO实验
所谓GPIO,就是通用型输入输出(General Purpose Input/Output),GPIO试验是单片机引脚的基本输入输出功能.现在来实现这样一个场景:四个按键作为开关.四个LED作为响应, ...
- 基于Atmega16的GPIO实验(以流水灯为例)
一.实验目的 1. 掌握AVR单片机开发平台的搭建方法. 2. 掌握GPIO的编程方法. 二.实验内容 1. 验证课堂例题 编译下载运行课堂例题--"LED流水灯"和"按 ...
- lpc1768的gpio库函数_Cortex-M3学习LPC1768 - GPIO实验
/********************************************************************************* 文件名称:mian.c 功 ...
- JZ2440开发板之GPIO实验,遇到的链接语句、设置寄存器的问题
(1)自己写的 crt0.s , led.c , Makefile 文件,下到开发板上后始终无法运行,但是将led.c文件拷贝到光盘提供的对应程序中编译,结果可以运行.推测是 crt0.s 或者 Ma ...
- lpc1768的gpio库函数_LPC1768之GPIO流水灯的实验例程
**************************************** Copyright (c) CaKen ************************************ ** ...
- DSP5509的GPIO学习-第5篇
1. 使用CCS V6.1版本,目前已经不局限于仅仅把实验搞清楚了,要深入去探究内部的原理,本章看下GPIO实验 2. 在CCS启动的时候,提示,这个问题是什么,XDAIS是什么?XDAIS (eXp ...
最新文章
- Powershell检测AD账户密码过期时间并邮件通知
- R语言实战第一,二章SQL版
- 8-spark学习笔记-sparksql
- java web 使用https_如何在Web应用程序中实现HTTPS登录页面?
- linux下MyEclipse 安装
- Vue安装依赖npm install时报错问题解决方法
- java设置表格列不可修改_Java DefaultTableModel使单元格不可编辑JTable
- linux有哪些实时同步工具,rsync文件同步工具常见模式有哪些?linux系统
- Python MySQL更新表
- C++ 拷贝构造函数和赋值运算符
- 从进程组、会话、终端的概念深入理解守护进程
- RTSP之主流安防厂家地址
- python七种数据类型
- 知道这4个隐藏资源网站的人非常少,难怪总是找不到资源
- springboot下,JedisPool getResource导致大量线程WAITING,服务假死
- 人脸识别会被留底吗_人脸识别会保存我们的照片吗?
- 排污单位生产设施及污染治理设施用电(能)监控系统原理、作用、组成及功能
- singleton pattern的一个模板实现, 适用于单线程, 并且提供了Release方法
- excel中条形图的条目排序与逆序
- w7系统怎么开启打印机服务器,W7系统如何开启打印机服务
热门文章
- 免费开源的B2B、B2C商城系统(支持PC+小程序+Android+IOS+H5)
- Jsp入门1Jsp入门基础简介与工作原理详解
- 安装gitlab-runner,注册runner到gitlab
- Python实现动态规划01背包问题
- 公司一哥们发给公司全体的信件
- Magento微信登陆模块 / Magento微信联合登陆 / 支持Magento 1.9.X
- 秒懂算法 | 蒙特卡罗算法
- Python基础 -- Task01. 变量、运算符与数据类型
- Git使用SSH方式远程clone阿里code的项目(完整+详细+多图)
- 私域运营4个基本功介绍(引流,内容,工具,方法论)