1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-25 01:05:27 +03:00

Make SPI read and write register generic

This commit is contained in:
Martin Budden 2017-06-29 05:40:31 +01:00
parent e36ad629e4
commit 8df87bc47d
6 changed files with 74 additions and 53 deletions

View file

@ -20,11 +20,12 @@
#include <platform.h>
#include "drivers/bus.h"
#include "drivers/bus_spi.h"
#include "drivers/exti.h"
#include "drivers/io.h"
#include "io_impl.h"
#include "rcc.h"
#include "drivers/io_impl.h"
#include "drivers/rcc.h"
/* for F30x processors */
#if defined(STM32F303xC)
@ -351,3 +352,23 @@ void spiResetErrorCounter(SPI_TypeDef *instance)
if (device != SPIINVALID)
spiHardwareMap[device].errorCount = 0;
}
bool spiWriteRegister(const busDevice_t *bus, uint8_t reg, uint8_t data)
{
IOLo(bus->spi.csnPin);
spiTransferByte(bus->spi.instance, reg);
spiTransferByte(bus->spi.instance, data);
IOHi(bus->spi.csnPin);
return true;
}
bool spiReadRegister(const busDevice_t *bus, uint8_t reg, uint8_t length, uint8_t *data)
{
IOLo(bus->spi.csnPin);
spiTransferByte(bus->spi.instance, reg | 0x80); // read transaction
spiTransfer(bus->spi.instance, data, NULL, length);
IOHi(bus->spi.csnPin);
return true;
}