其实这篇文章主要是介绍自己为其写的GPIO库,自己借鉴了原子写的STM32,野火写的K60,还有LPC官方库,然后按照自己平时用的,然后写了一个..其实写库的主要目的是为了方便(主要是方便操作)以后自己用,还想着分享给别人用,加快项目开发的速度,,本想着后期的各种功能库都自己写一套...不过就今天看来应该到此为止了.......
其实现在也没心情介绍了,直接说一下有什么实用的功能
第一点哈,支持位带操作
//IO口操作宏定义#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2)) #define MEM_ADDR(addr) *((volatile unsigned long *)(addr)) #define BIT_ADDR(addr, bitnum) MEM_ADDR(BITBAND(addr, bitnum)) //IO口地址映射#define GPIO0_PIN_Addr (LPC_GPIO0_BASE+20) #define GPIO1_PIN_Addr (LPC_GPIO1_BASE+20)#define GPIO2_PIN_Addr (LPC_GPIO2_BASE+20)#define GPIO3_PIN_Addr (LPC_GPIO3_BASE+20)#define GPIO4_PIN_Addr (LPC_GPIO4_BASE+20)#define GPIO5_PIN_Addr (LPC_GPIO5_BASE+20) #define P0out(n) BIT_ADDR(GPIO0_PIN_Addr,n) //输出#define P0in(n) BIT_ADDR(GPIO0_PIN_Addr,n) //输入#define P1out(n) BIT_ADDR(GPIO1_PIN_Addr,n) //输出#define P1in(n) BIT_ADDR(GPIO1_PIN_Addr,n) //输入#define P2out(n) &nb