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.
193 lines
3.7 KiB
193 lines
3.7 KiB
#include "gpio.hpp"
|
|
#include "../../bsl_nucleo_f042k6.h"
|
|
//#include "/home/key/git/ked/bsl/csl/stm32f042/Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f042x6.h"
|
|
#include "gpioMap.hpp"
|
|
|
|
#define PIN_COUNT 26
|
|
|
|
class Gpio::gpioImpl
|
|
{
|
|
public:
|
|
uint8_t pinCount = PIN_COUNT;
|
|
char buffer[50];
|
|
uint8_t currentPin = 0;
|
|
int ck = 0;
|
|
|
|
|
|
pinDefinition pins[PIN_COUNT + 1];
|
|
|
|
gpioImpl()
|
|
{
|
|
//Enable clock access to GPIOA
|
|
RCC_AHBENR |= IOPBEN;
|
|
|
|
//Set pin B3 as output pin
|
|
GPIOX_MODER |= (1U<<10); //Set bit 10 to 1
|
|
GPIOX_MODER &=~ (1U<<11); //Set bit 11 to 0
|
|
}
|
|
|
|
void setFunction(uint8_t gpioNo, Gpio::pinFunction function)
|
|
{
|
|
}
|
|
|
|
void setMode(uint8_t gpioNo, Gpio::pinMode mode)
|
|
{
|
|
}
|
|
|
|
void setOutputState(uint8_t gpioNo, Gpio::pinState state)
|
|
{
|
|
}
|
|
|
|
void setPullUpDonw(uint8_t gpioNo, Gpio::pinPullUpDown resistance)
|
|
{
|
|
}
|
|
|
|
void setSpeed(uint8_t gpioNo, Gpio::pinSpeed speed)
|
|
{
|
|
}
|
|
|
|
void config(uint8_t gpioNo,Gpio::pinFunction function, Gpio::pinMode mode, Gpio::pinState state, Gpio::pinPullUpDown resistance, Gpio::pinSpeed speed)
|
|
{
|
|
}
|
|
|
|
|
|
int8_t readPin(uint8_t gpioNo)
|
|
{
|
|
return 2;
|
|
}
|
|
|
|
void writePin(uint8_t gpioNo, uint8_t value)
|
|
{
|
|
if(value == 1)
|
|
{
|
|
GPIOB_ODR |= LED_PIN;
|
|
//LL_GPIO_SetOutputPin(LED_G_GPIO_Port,LED_G_Pin);
|
|
}
|
|
else if(value == 0)
|
|
{
|
|
GPIOB_ODR &=~ LED_PIN;
|
|
//LL_GPIO_ResetOutputPin(LED_G_GPIO_Port,LED_G_Pin);
|
|
}
|
|
}
|
|
|
|
|
|
uint16_t readRange(uint8_t start, uint8_t stop)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
void writeRange(uint8_t start, uint8_t stop, uint16_t value)
|
|
{
|
|
|
|
}
|
|
|
|
|
|
void pinInitiate(uint8_t gpioNo)
|
|
{
|
|
}
|
|
|
|
void pinUninitiate(uint8_t gpioNo)
|
|
{
|
|
}
|
|
|
|
void checkCurrentPins()
|
|
{
|
|
}
|
|
|
|
void pinList() // Lists allthe pins whom their mode in not set to undefined.
|
|
{
|
|
}
|
|
|
|
void pinPrintInfo(uint8_t gpioNo) // a graphical arrangement to see the cunnrently acive pins
|
|
{
|
|
|
|
}
|
|
|
|
void throwError(uint16_t line, Gpio::errors errNo)
|
|
{
|
|
}
|
|
};
|
|
|
|
Gpio::Gpio():gpioPimpl(new gpioImpl()){}
|
|
Gpio::~Gpio(){}
|
|
|
|
void Gpio::setFunction(uint8_t gpioNo, Gpio::pinFunction function)
|
|
{
|
|
return gpioPimpl->setFunction(gpioNo, function);
|
|
}
|
|
|
|
void Gpio::setMode(uint8_t gpioNo, Gpio::pinMode mode)
|
|
{
|
|
return gpioPimpl->setMode(gpioNo, mode);
|
|
}
|
|
|
|
void Gpio::setOutputState(uint8_t gpioNo, Gpio::pinState state)
|
|
{
|
|
return gpioPimpl->setOutputState(gpioNo,state);
|
|
}
|
|
|
|
void Gpio::setPullUpDonw(uint8_t gpioNo, Gpio::pinPullUpDown resistance)
|
|
{
|
|
return gpioPimpl->setPullUpDonw(gpioNo,resistance);
|
|
}
|
|
|
|
void Gpio::setSpeed(uint8_t gpioNo, Gpio::pinSpeed speed)
|
|
{
|
|
return gpioPimpl->setSpeed(gpioNo, speed);
|
|
}
|
|
|
|
void Gpio::config(uint8_t gpioNo,Gpio::pinFunction function, Gpio::pinMode mode, Gpio::pinState state, Gpio::pinPullUpDown resistance, Gpio::pinSpeed speed)
|
|
{
|
|
return gpioPimpl->config(gpioNo,function ,mode,state,resistance,speed);
|
|
}
|
|
|
|
uint8_t Gpio::readPin(uint8_t gpioNo)
|
|
{
|
|
return gpioPimpl->readPin(gpioNo);
|
|
}
|
|
|
|
void Gpio::writePin(uint8_t gpioNo, uint8_t value)
|
|
{
|
|
return gpioPimpl->writePin(gpioNo, value);
|
|
}
|
|
|
|
uint16_t Gpio::readRange(uint8_t start, uint8_t stop)
|
|
{
|
|
return gpioPimpl->readRange(start,stop);
|
|
}
|
|
|
|
void Gpio::writeRange(uint8_t start, uint8_t stop, uint16_t value)
|
|
{
|
|
return gpioPimpl->writeRange(start,stop,value);
|
|
}
|
|
|
|
void Gpio::pinInitiate(uint8_t gpioNo)
|
|
{
|
|
return gpioPimpl->pinInitiate(gpioNo);
|
|
}
|
|
|
|
void Gpio::pinUninitiate(uint8_t gpioNo)
|
|
{
|
|
return gpioPimpl->pinUninitiate(gpioNo);
|
|
}
|
|
|
|
void Gpio::checkCurrentPins()
|
|
{
|
|
return gpioPimpl->checkCurrentPins();
|
|
}
|
|
|
|
void Gpio::pinList()
|
|
{
|
|
return gpioPimpl->pinList();
|
|
}
|
|
|
|
void Gpio::pinPrintInfo(uint8_t gpioNo)
|
|
{
|
|
return gpioPimpl->pinPrintInfo(gpioNo);
|
|
}
|
|
|
|
void Gpio::throwError(uint16_t line, Gpio::errors error)
|
|
{
|
|
return gpioPimpl->throwError(line, error);
|
|
}
|