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.
KED/bsl/csl/stm32f042/Src/pin.c

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()
{
}