GPIO示例

来源:互联网 发布:人防大数据 编辑:程序博客网 时间:2024/05/01 13:42
#include <stdio.h>#include <stdlib.h>#include <string.h>#include "mmu.h"#include "typedef.h"#include "S3C2451_gpio.h"//#include "S3C2451_uart.h"//#include "S3C2451_irq.h"//#include "S3C2451_eint.h"U8 disnum = 0;void led_init(void);void key_init(void);void display(void);void delay(unsigned int count);void Main(){BIT_Typedef temp;//MMU³õʼ»¯£ºÔÚ³ÌÐò×ʼµÄʱºòµ÷ÓÃMMU_Init();led_init();key_init();while(1){display();temp = GPIO_ReadBit(GPIOF,GPIO_PIN_0);if(temp == BIT_RESET ){disnum++;if(disnum == 16)disnum = 0;}temp = GPIO_ReadBit(GPIOF,GPIO_PIN_1);if(temp == BIT_RESET ){disnum--;if(disnum  > 15)disnum = 15;}temp = GPIO_ReadBit(GPIOF,GPIO_PIN_2);if(temp == BIT_RESET ){disnum = 0;}temp = GPIO_ReadBit(GPIOF,GPIO_PIN_3);if(temp == BIT_RESET ){disnum = 15;}};}void delay(unsigned int count){int j = 1000;int i = 0;while(--j)for(i =count; i > 0; i --);}void led_init(){GPIO_Init_Typedef led1;GPIO_Init_Typedef led2;GPIO_Init_Typedef led3;GPIO_Init_Typedef led4;led1.pinx = GPIO_PIN_5 ;led1.mode = GPIO_MODE_OUT;led1.udp = GPIO_UDP_PULLUP;led2.pinx = GPIO_PIN_6;led2.mode = GPIO_MODE_OUT;led2.udp = GPIO_UDP_PULLUP;led3.pinx = GPIO_PIN_25;led3.mode = GPIO_MODE_OUT;led3.udp = GPIO_UDP_PULLUP;led4.pinx = GPIO_PIN_26;led4.mode = GPIO_MODE_OUT;led4.udp = GPIO_UDP_PULLUP;GPIO_Init(GPIOB,led1);GPIO_Init(GPIOB,led2);GPIO_Init(GPIOA,led3);GPIO_Init(GPIOA,led4);}void key_init(){GPIO_Init_Typedef key1;GPIO_Init_Typedef key2;GPIO_Init_Typedef key3;GPIO_Init_Typedef key4;key1.pinx = GPIO_PIN_0;key1.mode = GPIO_MODE_IN;key1.udp = GPIO_UDP_PULLUP;key2.pinx = GPIO_PIN_1;key2.mode = GPIO_MODE_IN;key2.udp = GPIO_UDP_PULLUP;key3.pinx = GPIO_PIN_2;key3.mode = GPIO_MODE_IN;key3.udp = GPIO_UDP_PULLUP;key4.pinx = GPIO_PIN_3;key4.mode = GPIO_MODE_IN;key4.udp = GPIO_UDP_PULLUP;GPIO_Init(GPIOF,key1);GPIO_Init(GPIOF,key2);GPIO_Init(GPIOF,key3);GPIO_Init(GPIOF,key4);}void display(){if(disnum & 0x01){GPIO_WriteBit(GPIOB,GPIO_PIN_5,BIT_RESET );}else{GPIO_WriteBit(GPIOB,GPIO_PIN_5,BIT_SET );}if((disnum >> 1) & 0x01){GPIO_WriteBit(GPIOB,GPIO_PIN_6,BIT_RESET );}else{GPIO_WriteBit(GPIOB,GPIO_PIN_6,BIT_SET );}if((disnum >> 2) & 0x01){GPIO_WriteBit(GPIOA,GPIO_PIN_25,BIT_RESET );}else{GPIO_WriteBit(GPIOA,GPIO_PIN_25,BIT_SET );}if((disnum >> 3) & 0x01){GPIO_WriteBit(GPIOA,GPIO_PIN_26,BIT_RESET );}else{GPIO_WriteBit(GPIOA,GPIO_PIN_26,BIT_SET );}}

原创粉丝点击