串口和中断写完
This commit is contained in:
+8
-26
@@ -8,26 +8,7 @@
|
||||
*/
|
||||
void GpioClockEnable(const GPIO_MAP_T *GpioX)
|
||||
{
|
||||
if(GpioX->Periph == GPIOA)
|
||||
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
|
||||
|
||||
if(GpioX->Periph == GPIOB)
|
||||
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
|
||||
|
||||
if(GpioX->Periph == GPIOC)
|
||||
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
|
||||
|
||||
if(GpioX->Periph == GPIOD)
|
||||
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
|
||||
|
||||
if(GpioX->Periph == GPIOE)
|
||||
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);
|
||||
|
||||
if(GpioX->Periph == GPIOF)
|
||||
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE);
|
||||
|
||||
if(GpioX->Periph == GPIOG)
|
||||
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE);
|
||||
GpioX->ClockCmd(GpioX->ClockTree,ENABLE);
|
||||
}
|
||||
/**
|
||||
* @brief 配置GPIO口
|
||||
@@ -39,11 +20,12 @@ void GpioConfig(const GPIO_MAP_T *GpioX, GPIOMode_TypeDef GpioMode, GPIOSpeed_Ty
|
||||
{
|
||||
GPIO_InitTypeDef GpioInitSt;
|
||||
|
||||
GpioInitSt.GPIO_Pin = GpioX->GpioPin;
|
||||
GpioInitSt.GPIO_Pin = GpioX->Periph.GpioPin;
|
||||
GpioInitSt.GPIO_Mode = GpioMode;
|
||||
GpioInitSt.GPIO_Speed = GpioSpeed;
|
||||
|
||||
GPIO_Init(GpioX->Periph, &GpioInitSt);
|
||||
//打开外设时钟
|
||||
GpioClockEnable(GpioX);
|
||||
GPIO_Init(GpioX->Periph.GpioPort, &GpioInitSt);
|
||||
}
|
||||
/**
|
||||
* @brief 改变GPIO口状态
|
||||
@@ -55,11 +37,11 @@ void GpioSet(const GPIO_MAP_T *GpioX, uint8_t Value)
|
||||
{
|
||||
if (Value == (uint8_t)RESET)
|
||||
{
|
||||
GPIO_ResetBits(GpioX->Periph, GpioX->GpioPin);
|
||||
GPIO_ResetBits(GpioX->Periph.GpioPort, GpioX->Periph.GpioPin);
|
||||
}
|
||||
else if (Value == (uint8_t)SET)
|
||||
{
|
||||
GPIO_SetBits(GpioX->Periph, GpioX->GpioPin);
|
||||
GPIO_SetBits(GpioX->Periph.GpioPort, GpioX->Periph.GpioPin);
|
||||
}
|
||||
}
|
||||
/**
|
||||
@@ -70,6 +52,6 @@ void GpioSet(const GPIO_MAP_T *GpioX, uint8_t Value)
|
||||
*/
|
||||
unsigned char GpioGet(const GPIO_MAP_T *GpioX)
|
||||
{
|
||||
return (unsigned char)GPIO_ReadInputDataBit(GpioX->Periph, GpioX->GpioPin);
|
||||
return (unsigned char)GPIO_ReadInputDataBit(GpioX->Periph.GpioPort, GpioX->Periph.GpioPin);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user