You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
1.3 KiB
98 lines
1.3 KiB
#include "pin.h"
|
|
|
|
#define MODER_IN 0x0UL
|
|
#define MODER_OUT 0x1UL
|
|
#define MODER_ALTERNATE 0x2UL
|
|
#define MODER_ANALOG 0x3UL
|
|
|
|
#define OSPEEDR_LOW 0x0UL
|
|
#define OSPEEDR_MEDIUM 0x1UL
|
|
#define OSPEEDR_HIGH 0x3UL
|
|
|
|
#define PUPDR_NO_PULL 0x0UL
|
|
#define PUPDR_PULL_UP 0x1UL
|
|
#define PUPDR_PULL_DOWN 0x2UL
|
|
|
|
const uint32_t moderMode[4] = {
|
|
MODER_ANALOG,
|
|
MODER_IN,
|
|
MODER_OUT,
|
|
MODER_ANALOG,
|
|
MODER_ALTERNATE
|
|
};
|
|
|
|
void setMode(pinNo_t pinNo, mode mode)
|
|
{
|
|
init(pinNo);
|
|
//Clear entry.
|
|
((GPIO_TypeDef *)(pinNo&~0xFF))->MODER &=~ (MODER_ANALOG << ((pinNo & 0xFF) * 2));
|
|
//Set to corresponding mode.
|
|
((GPIO_TypeDef *)(pinNo&~0xFF))->MODER |= (moderMode[mode] << ((pinNo & 0xFF) * 2));
|
|
}
|
|
|
|
void setOutputState(pinNo_t pinNo, state state)
|
|
{
|
|
|
|
}
|
|
|
|
void setPullUpDonw(pinNo_t pinNo, pullUpDown resistance)
|
|
{
|
|
|
|
}
|
|
|
|
void setSpeed(pinNo_t pinNo, speed speed)
|
|
{
|
|
|
|
}
|
|
|
|
void config(pinNo_t pinNo, mode mode, state state, pullUpDown resistance, speed speed)
|
|
{
|
|
|
|
}
|
|
|
|
|
|
uint8_t get(pinNo_t pinNo)
|
|
{
|
|
|
|
}
|
|
|
|
void toggle(pinNo_t pinNo)
|
|
{
|
|
|
|
}
|
|
|
|
void set(pinNo_t pinNo, uint8_t state)
|
|
{
|
|
if(state == 1)
|
|
{
|
|
GPIOB->BSRR |= GPIO_BSRR_BS_3;
|
|
return;
|
|
}
|
|
GPIOB->BSRR |= GPIO_BSRR_BR_3;
|
|
}
|
|
|
|
//Enable the pin port's clock
|
|
void init(pinNo_t pinNo)
|
|
{
|
|
RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
|
|
}
|
|
|
|
void deInit(pinNo_t pinNo)
|
|
{
|
|
|
|
}
|
|
|
|
|
|
void hardwareInfo(pinNo_t pinNo)
|
|
{
|
|
|
|
}
|
|
|
|
void throwError()
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|