eurorack/midi2cv/drivers/gpio.h

52 lines
1.1 KiB
C++

#ifndef MIDI2CV_DRIVERS_GPIO_H
#define MIDI2CV_DRIVERS_GPIO_H
#include "stmlib/stmlib.h"
#include <stm32f3xx_hal_conf.h>
#define PORT_RST_OLED GPIOB
#define PIN_RST_OLED GPIO_Pin_0
#define PORT_SS_DAC0 GPIOB
#define PIN_SS_DAC0 GPIO_Pin_6
#define PORT_SS_DAC1 GPIOB
#define PIN_SS_DAC1 GPIO_Pin_7
#define PORT_RST_USB GPIOB
#define PIN_RST_USB GPIO_Pin_8
#define PORT_SS_USB GPIOB
#define PIN_SS_USB GPIO_Pin_9
#define PORT_SS_OLED GPIOB
#define PIN_SS_OLED GPIO_Pin_11
#define PORT_SDC_OLED GPIOB
#define PIN_SDC_OLED GPIO_Pin_12
#define PORT_GATE_OUT_1 GPIOA
#define PIN_GATE_OUT_1 GPIO_Pin_0
#define PORT_GATE_OUT_2 GPIOA
#define PIN_GATE_OUT_2 GPIO_Pin_1
#define PORT_GATE_OUT_3 GPIOA
#define PIN_GATE_OUT_3 GPIO_Pin_2
#define PORT_GATE_OUT_4 GPIOA
#define PIN_GATE_OUT_4 GPIO_Pin_3
#define PORT_GATE_OUT_5 GPIOA
#define PIN_GATE_OUT_5 GPIO_Pin_4
#define PORT_GATE_OUT_6 GPIOA
#define PIN_GATE_OUT_6 GPIO_Pin_5
#define GPIO_PIN(x) PORT_##x, PIN_##x
class GPIO {
public:
GPIO() { }
~GPIO() {}
void Init();
void Write(GPIO_TypeDef* port, uint16_t pin, bool state);
private:
DISALLOW_COPY_AND_ASSIGN(GPIO);
};
extern GPIO gpio;
#endif