Skip to content

STM32duinoBLE enhancement #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Feb 17, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions .github/workflows/compile-examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,9 @@ jobs:
strategy:
matrix:
fqbn: [
"arduino:samd:mkrwifi1010",
"arduino:samd:nano_33_iot",
"arduino:megaavr:uno2018:mode=on",
"arduino:mbed:nano33ble"
'"STM32:stm32:Eval:pnum=STEVAL_MKSBOX1V1,usb=CDCgen" "https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json"',
'"STM32:stm32:Nucleo_64:pnum=NUCLEO_L476RG" "https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json"',
'"STM32:stm32:Disco:pnum=DISCO_L475VG_IOT" "https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json"'
]

steps:
Expand Down
2 changes: 1 addition & 1 deletion examples/Peripheral/ButtonLED/ButtonLED.ino
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ void loop() {
char buttonValue = digitalRead(buttonPin);

// has the value changed since the last read
boolean buttonChanged = (buttonCharacteristic.value() != buttonValue);
bool buttonChanged = (buttonCharacteristic.value() != buttonValue);

if (buttonChanged) {
// button state changed, update characteristics
Expand Down
2 changes: 1 addition & 1 deletion src/BLETypedCharacteristics.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class BLEBoolCharacteristic : public BLETypedCharacteristic<bool> {
BLEBoolCharacteristic(const char* uuid, unsigned char properties);
};

class BLEBooleanCharacteristic : public BLETypedCharacteristic<boolean> {
class BLEBooleanCharacteristic : public BLETypedCharacteristic<bool> {
public:
BLEBooleanCharacteristic(const char* uuid, unsigned char properties);
};
Expand Down
2 changes: 1 addition & 1 deletion src/utility/ATT.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1142,7 +1142,7 @@ void ATTClass::readByTypeResp(uint16_t connectionHandle, uint8_t dlen, uint8_t d

void ATTClass::writeReqOrCmd(uint16_t connectionHandle, uint16_t mtu, uint8_t op, uint8_t dlen, uint8_t data[])
{
boolean withResponse = (op == ATT_OP_WRITE_REQ);
bool withResponse = (op == ATT_OP_WRITE_REQ);

if (dlen < sizeof(uint16_t)) {
if (withResponse) {
Expand Down
19 changes: 9 additions & 10 deletions src/utility/HCISpiTransport.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,14 @@

volatile int data_avail = 0;

HCISpiTransportClass::HCISpiTransportClass(SPIClass& spi, BLEChip_t ble_chip, uint8_t cs_pin, uint8_t spi_irq, uint8_t ble_rst, unsigned long frequency, int spi_mode) :
HCISpiTransportClass::HCISpiTransportClass(SPIClass& spi, BLEChip_t ble_chip, uint8_t cs_pin, uint8_t spi_irq, uint8_t ble_rst, uint32_t frequency, uint8_t spi_mode) :
_spi(&spi),
_ble_chip(ble_chip),
_cs_pin(cs_pin),
_spi_irq(spi_irq),
_ble_rst(ble_rst),
_frequency(frequency),
_spi_mode(spi_mode)
_ble_rst(ble_rst)
{
_spiSettings = SPISettings(frequency, (BitOrder)BLE_SPI_BYTE_ORDER, spi_mode);
_read_index = 0;
_write_index = 0;
_write_index_initial = 0;
Expand Down Expand Up @@ -125,7 +124,7 @@ int HCISpiTransportClass::available()
detachInterrupt(_spi_irq);
}

_spi->beginTransaction(SPISettings(_frequency, MSBFIRST, _spi_mode));
_spi->beginTransaction(_spiSettings);

digitalWrite(_cs_pin, LOW);

Expand Down Expand Up @@ -337,7 +336,7 @@ size_t HCISpiTransportClass::write(const uint8_t* data, size_t length)
{
result = 0;

_spi->beginTransaction(SPISettings(_frequency, MSBFIRST, _spi_mode));
_spi->beginTransaction(_spiSettings);

digitalWrite(_cs_pin, LOW);

Expand Down Expand Up @@ -376,7 +375,7 @@ size_t HCISpiTransportClass::write(const uint8_t* data, size_t length)

detachInterrupt(_spi_irq);

_spi->beginTransaction(SPISettings(_frequency, MSBFIRST, _spi_mode));
_spi->beginTransaction(_spiSettings);

digitalWrite(_cs_pin, LOW);

Expand Down Expand Up @@ -458,7 +457,7 @@ void HCISpiTransportClass::wait_for_blue_initialize()
{
uint8_t header_master[5] = {0x0b, 0x00, 0x00, 0x00, 0x00};

_spi->beginTransaction(SPISettings(_frequency, MSBFIRST, _spi_mode));
_spi->beginTransaction(_spiSettings);

digitalWrite(_cs_pin, LOW);

Expand Down Expand Up @@ -526,7 +525,7 @@ void HCISpiTransportClass::wait_for_enable_ll_only()
{
uint8_t header_master[5] = {0x0b, 0x00, 0x00, 0x00, 0x00};

_spi->beginTransaction(SPISettings(_frequency, MSBFIRST, _spi_mode));
_spi->beginTransaction(_spiSettings);

digitalWrite(_cs_pin, LOW);

Expand Down Expand Up @@ -580,7 +579,7 @@ void HCISpiTransportClass::enable_ll_only()
{
result = 0;

_spi->beginTransaction(SPISettings(_frequency, MSBFIRST, _spi_mode));
_spi->beginTransaction(_spiSettings);

digitalWrite(_cs_pin, LOW);

Expand Down
8 changes: 5 additions & 3 deletions src/utility/HCISpiTransport.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,14 @@ typedef enum BLEChip_s {
BLUENRG_M2SP
} BLEChip_t;

#ifndef BLE_SPI_BYTE_ORDER
#define BLE_SPI_BYTE_ORDER MSBFIRST
#endif
#define BLE_MODULE_SPI_BUFFER_SIZE 128

class HCISpiTransportClass : public HCITransportInterface {
public:
HCISpiTransportClass(SPIClass& spi, BLEChip_t ble_chip, uint8_t cs_pin, uint8_t spi_irq, uint8_t ble_rst, unsigned long frequency, int spi_mode);
HCISpiTransportClass(SPIClass& spi, BLEChip_t ble_chip, uint8_t cs_pin, uint8_t spi_irq, uint8_t ble_rst, uint32_t frequency, uint8_t spi_mode);
virtual ~HCISpiTransportClass();

virtual int begin();
Expand All @@ -52,12 +55,11 @@ class HCISpiTransportClass : public HCITransportInterface {
void wait_for_enable_ll_only();
void enable_ll_only();
SPIClass* _spi;
SPISettings _spiSettings;
BLEChip_t _ble_chip;
uint8_t _cs_pin;
uint8_t _spi_irq;
uint8_t _ble_rst;
unsigned long _frequency;
int _spi_mode;
uint8_t _rxbuff[BLE_MODULE_SPI_BUFFER_SIZE];
uint16_t _read_index;
uint16_t _write_index;
Expand Down