单片机
返回首页

LPC2478的GPIO使用详解

2017-01-13 来源:eefocus

GPIO使用

LPC2478的GPIO是不能断开时钟的,上电就连接.处理GPIO主要就下面几步

1.      设置为普通IO模式

2.      设置输入输出方向

3.      设置值

以下寄存器



用于选择管脚是基本输入输出还是复用功能



设置管脚是否具有上拉电阻


其中,LPC的管脚分为两种,一种是传统GPIO还有一种是高速GPIO,其实严格来说,所有的管脚都是高速管脚,但是为了兼容之前的软件和程序,可以使用之前的访问模式访问GPIO,说明如下



设置管脚方向



这个寄存器只能写1有效,写1将对应管脚高电平,写0不会将对应管脚低电平



需要将对应管脚低电平靠这个寄存器,但是这个寄存器不能控制管脚高电平



通过该寄存器获取相应端口的输入



这个寄存器的意思是说:将指定位的数据屏蔽,也就是说在这个寄存器中写入1的那一位,我们无法通过写入寄存器的方式控制他的电平也不能读取到他的当前有效电平,也就是说,那个管脚被锁住了

以下是使用代码,全部使用FIO高速管脚模式驱动

 

  1. #ifndef __GPIO_H_  

  2. #define __GPIO_H_  

  3. #include 'lpc24xx.h'  

  4. #include 'common.h'  

  5.   

  6.   

  7. //p1 5输出 P2 10输入  

  8. void GPIOInit(void);  

  9.   

  10. void GPIOSet(u8 value);  

  11.   

  12. u8 GPIOGet(void);  

  13.   

  14.   

  15.   

  16.   

  17. #endif  


  1. #include 'gpio.h'  

  2.   

  3.   

  4. //p1 5输出 P2 10输入  

  5. void GPIOInit(void)  

  6. {  

  7.     SCS |= (1<<0);//设置高速寄存器组方式访问端口  

  8.     PINSEL2 &= ~(3<<10);//选择 p1 5 p2 10 为GPIO管脚  

  9.     PINSEL4 &= ~(3<<20);  

  10.       

  11.     PINMODE2 &= ~(3<<10);//全部使能上拉电阻  

  12.     PINMODE4 &= ~(3<<20);  

  13.       

  14.     FIO1DIR |= 1<<5;  //P1 5输出  

  15.     FIO2DIR &= ~(1<<10);//P2 10输入  

  16.       

  17.     FIO1MASK = 0x00;  

  18.     FIO2MASK = 0x00;//将1和2的数据掩码全部清除  

  19.       

  20. }  

  21.   

  22. void GPIOSet(u8 value)  

  23. {  

  24.     if(value)FIO1SET |= (1<<5);  

  25.     else FIO1CLR |= (1<<5);  

  26. }  

  27.   

  28. //p2 10 按下高电平 平时低电平  

  29. u8 GPIOGet(void)  

  30. {  

  31.     if((FIO2PIN&(1<<10)) == 0)  

  32.     {  

  33.         return 1;  

  34.     }  

  35.     else  

  36.     {  

  37.         return 0;  

  38.     }  

  39. }  



 

需要注意的是,对于P0和P1当使用FIO驱动的时候需要修改SCS修改系统控制寄存器,如下



否则就算是写入了FIO寄存器也不会体现在实际管脚上


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • CCD图像传感器在微光电视系统中的应用

  • 离子检测器电路分析

  • 一个简单的立体声平衡指示器电路

  • 分享一个电网倾角计电路

  • 使用NE555和磁簧开关的橱柜照明电路

  • 电谐波图形均衡器示意图

    相关电子头条文章