zoukankan      html  css  js  c++  java
  • 引脚端口嵌入式学习笔记之GPIO

    新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正

        嵌入式学习条记之GPIO

             GPIO,意为通用输入/输出端口,根据它们可以读取端口的高低电平或者读入引脚状态。S3C2410芯片共有117个I/O端口,共分为8组:A~H。分别为:GPA、GPB…GPH。端口的输入输出功能可以通过设定特定的端口值来肯定。

                 控制s3c2410的GPIO端口的寄存器有3类,分别是GPxCON、GPxDAT、GPxUP (x=A~H)

                 GPxCON:GPIO控制寄存器,可以设置选定GPIO口的输入输出方式和功能。GPA组的23个端口比拟特别,只能是输出方式。GPACON的每一位对应一个引脚,当某位为0时,对应引脚为输出端口,否则为复用功能。

             GPBGPH端口的GPxCON寄存器使用方法分歧,每两位控制一个引脚,00时为输入I/O口,01时为输出I/O口,10时为复用功能,11保留。

                 GPxDAT:此引脚用于读写引脚的状态,即端口数据。当引脚配置为输出时,给该寄存器某位写1,则对应引脚输出高电平,写0输出低电平。当引脚配置为输出时,读该寄存器可以失掉端口电平状态。

                GPxUP:该寄存器可以设置引脚是否使用上拉电阻,某位为0时对应引脚使用上拉电阻,某位为1时不使用上拉电阻。注意:GPA组没有GPxUP寄存器,即没有上拉电阻。

        每日一道理
    如果只看到太阳的黑点,那你的生活将缺少温暖;如果你只看到月亮的阴影,那么你的生命历程将难以找到光明;如果你总是发现朋友的缺点,你么你的人生旅程将难以找到知音;同样,如果你总希望自己完美无缺,假设你的这一愿望真的能如愿以偿,那么你最大的缺点就是没有缺点。

            1、作甚上拉电阻、下拉电阻:

           引脚和端口上拉电阻                                               引脚和端口下拉电阻

                                                       

            上拉电阻是针对NPN来说的,下拉电阻是针对PNP来说的!不管是上拉电阻还是下拉电阻都是为了使集电极有肯定的电位!

            比如对NPN来说,当不用上拉电阻的时候,若基集为正,则导通,集电极为0。但当基集为0,则截止,此时集电极是悬空的,电位没法肯定!一旦加了上拉电阻,当导通的时候,集电极为0,当截止的时候,集电极为正。

           PNP也一样,导通的时候集电极为正,截止的时候集电极为0。

           2、GPIO端口配置方法:

           单个引脚的操纵无非就三种情况:输出高低电平,检测引脚状态,中断。对引脚的操纵一般是通过特定寄存器的配置完成。

        引脚和端口

        如图,根据LED 的硬件电路图,实现点亮LED:

    #define	GPFCON	(*(volatile unsigned long *)0x56000050)
    #define	GPFDAT	(*(volatile unsigned long *)0x56000054)
    
    #define	GPF4_out	(1<<(4*2))
    #define	GPF5_out	(1<<(5*2))
    #define	GPF6_out	(1<<(6*2))
    #define	GPF7_out	(1<<(7*2))
    
    void  wait(volatile unsigned long dly)
    {
    	for(; dly > 0; dly--);
    }
    
    int main(void)
    {
    	unsigned long i = 0;
    
    	GPFCON = GPF4_out|GPF5_out|GPF6_out|GPF7_out;	// 将LED1-4对应的GPF4/5/6/7三个引脚设为输出
    
    	while(1){
    		wait(30000);
    		GPFDAT = (~(i<<4));	 	// 根据i的值,点亮LED1~4
    		if(++i == 8)
    			i = 0;
    	}
    
    	return 0;
    }

        
     

    文章结束给大家分享下程序员的一些笑话语录: 一条狗在街上闲逛,看见橱窗里一张告示:「招聘程序员。会编程,有团队精神,至少精通两种语言。均等机会。」
      那条狗就进去申请,但是被拒绝了。
      「我不能雇一条狗在公司里做事。」经理说。
      狗不服气,指着告示上「均等机会」几字抗议。
      经理没法,叹了口气,不屑地问道:「你会编程吗?」
      那条狗默默地走到电脑前,编了个程序,运作准确。
      「你有团队精神吗?」经理问。
      那条狗掉头看了看门外,一大群野狗在外面虎视耽耽。
      「我真的不能雇狗做这份工作。」经理气急败坏地说。
      「就算会编程、有团队精神,但是我需要的雇员至少要能精通两种语言。」
      那条狗抬头看着经理说:「喵-噢。」

    --------------------------------- 原创文章 By
    引脚和端口
    ---------------------------------

  • 相关阅读:
    Linux
    C/C++ 引入头文件时 #include<***.h> 与 #include"***.h" 区别
    2018.01.10
    java 选择结构if
    引用数据类型 Scanner Random
    java 运算符
    java变量和数据类型
    Java se基础
    数据库设计
    MySQL 其他基础知识
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3100707.html
Copyright © 2011-2022 走看看