#include "stm32f10x.h"                  // Device header
#include "Serial.h"

void pin_Init(void)
{
	/*¿ªÆôÊ±ÖÓ*/
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);					
	GPIO_InitTypeDef GPIO_InitStructure;					
	
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;		
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13;				
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		
	
		
	
	GPIO_InitTypeDef GPIO_InitStructureIn;
	GPIO_InitStructureIn.GPIO_Mode = GPIO_Mode_IPU;
	GPIO_InitStructureIn.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
	GPIO_InitStructureIn.GPIO_Speed = GPIO_Speed_50MHz;
	
	
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	GPIO_Init(GPIOA, &GPIO_InitStructureIn);	
									
}

int pinBSet(int pinx,int Setpin)
{
	
	if(Setpin==0 )
	{
		switch(pinx)
		{
			case 10:
				GPIO_WriteBit(GPIOB, GPIO_Pin_10, Bit_RESET);
				//Serial_SendString("B10:LOW");
				break;
			case 11:
				GPIO_WriteBit(GPIOB, GPIO_Pin_11, Bit_RESET);
				//Serial_SendString("B11:LOW");
				break;
			case 12:
				GPIO_WriteBit(GPIOB, GPIO_Pin_12, Bit_RESET);
				//Serial_SendString("B12:LOW");
				break;
			case 13:
				GPIO_WriteBit(GPIOB, GPIO_Pin_13, Bit_RESET);
				//Serial_SendString("B13:LOW");
				break;
			default:
				break;
		}
		
	}
	
	if(Setpin==1 )
	{
		switch(pinx)
		{
			case 10:
				GPIO_WriteBit(GPIOB, GPIO_Pin_10, Bit_SET);
				//Serial_SendString("B10:HIGH");
				break;
			case 11:
				GPIO_WriteBit(GPIOB, GPIO_Pin_11, Bit_SET);
				//Serial_SendString("B11:HIGH");
				break;
			case 12:
				GPIO_WriteBit(GPIOB, GPIO_Pin_12, Bit_SET);
				//Serial_SendString("B12:HIGH");
				break;
			case 13:
				GPIO_WriteBit(GPIOB, GPIO_Pin_13, Bit_SET);
				//Serial_SendString("B13:HIGH");
				break;
			default:
				break;
		}
		
	}
	return pinx;
}

int Read_Apin(void)
{
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_4)==0)
	{
		
		return 1;
		
	}
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_5)==0)
	{
		
		return 2;
		
	}
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6)==0)
	{
		
		return 3;
	}
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_7)==0)
	{
		
		return 4;
	}
	return 0;
}
