其實這篇文章主要是介紹自己為其寫的GPIO庫,自己借鑒了原子寫的STM32,野火寫的K60,還有LPC官方庫,然后按照自己平時用的,然后寫了一個..其實寫庫的主要目的是為了方便(主要是方便操作)以后自己用,還想著分享給別人用,加快項目開發(fā)的速度,,本想著后期的各種功能庫都自己寫一套...不過就今天看來應(yīng)該到此為止了.......
其實現(xiàn)在也沒心情介紹了,直接說一下有什么實用的功能
第一點哈,支持位帶操作
//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