#include "Driver_GPIO.h" #include "stm32f10x.h" #include "stdio.h" void MyGPIO_Init ( MyGPIO_Struct_TypeDef * GPIOStructPtr ) { /* Reset, and then configuration writing of the selected GPIO Pin */ if(GPIOStructPtr->GPIO_Pin <= 8) { GPIOStructPtr->GPIO->CRL &= ~0xF<<(4*(GPIOStructPtr->GPIO_Pin)); GPIOStructPtr->GPIO->CRL |= (GPIOStructPtr->GPIO_Conf)<<(4*(GPIOStructPtr->GPIO_Pin)); } else { GPIOStructPtr->GPIO->CRH &= ~0xF<<(4*((GPIOStructPtr->GPIO_Pin)%8)); GPIOStructPtr->GPIO->CRH |= (GPIOStructPtr->GPIO_Conf)<<(4*((GPIOStructPtr->GPIO_Pin)%8)); } if(GPIOStructPtr->GPIO_Conf == (char)In_PullDown) { GPIOStructPtr->GPIO->ODR &= ~(0x1<<(GPIOStructPtr->GPIO_Pin)); } else if(GPIOStructPtr->GPIO_Conf == (char)In_PullUp) { GPIOStructPtr->GPIO->ODR |= 0x1<<(GPIOStructPtr->GPIO_Pin); } } int MyGPIO_Read ( GPIO_TypeDef * GPIO , char GPIO_Pin ) { return ((GPIO->ODR & (0x1<>GPIO_Pin); } void MyGPIO_Set (GPIO_TypeDef * GPIO , char GPIO_Pin) { GPIO->ODR &= 0x1<ODR |= ~(0x1<