RefKEIL/ProjetsKEIL/Drivers/Driver_GPIO.c

42 lines
No EOL
899 B
C

#include "stm32f10x.h"
#include "Driver_GPIO.h"
RCC->APB2ENR |= (0x01 << 2) | (0x01 << 3) | (0x01 << 4);
void MyGPIO_Init(MyGPIO_Struct_TypeDef * GPIOStructPtr)
{
if((GPIOStructPtr->GPIO_Pin)>"7")
{
GPIOStructPtr->GPIO->CRH &= ~(0xF<<(GPIOStructPtr->GPIO_Pin%8)*4);
GPIOStructPtr->GPIO->CRH |= (GPIOStructPtr->GPIO_Conf)<<(GPIOStructPtr->GPIO_Pin%8)*4;
}else
{
GPIOStructPtr->GPIO->CRL &= ~(0xF<<(GPIOStructPtr->GPIO_Pin%8)*4);
GPIOStructPtr->GPIO->CRL |= (GPIOStructPtr->GPIO_Conf)<<(GPIOStructPtr->GPIO_Pin%8)*4;
}
}
int MyGPIO_Read (GPIO_TypeDef * GPIO , char GPIO_Pin)
{
return (GPIO<<atoi(GPIO_Pin));
}
void MyGPIO_Set (GPIO_TypeDef * GPIO , char GPIO_Pin)
{
GPIO|=1<<atoi(GPIO_Pin);
}
void MyGPIO_Reset (GPIO_TypeDef * GPIO , char GPIO_Pin);
{
GPIO|=1<<(atoi(GPIO_Pin)+16);
}
void MyGPIO_Toggle (GPIO_TypeDef * GPIO , char GPIO_Pin);
{
GPIO^=1<<atoi(GPIO_Pin);
}