Skip to content

Commit 94a834a

Browse files
authored
Merge pull request #1 from fpistm/pr-11
STM32duinoBLE enhancement
2 parents c4f359a + 7e7cf88 commit 94a834a

File tree

6 files changed

+20
-20
lines changed

6 files changed

+20
-20
lines changed

Diff for: .github/workflows/compile-examples.yml

+3-4
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@ jobs:
77
strategy:
88
matrix:
99
fqbn: [
10-
"arduino:samd:mkrwifi1010",
11-
"arduino:samd:nano_33_iot",
12-
"arduino:megaavr:uno2018:mode=on",
13-
"arduino:mbed:nano33ble"
10+
'"STM32:stm32:Eval:pnum=STEVAL_MKSBOX1V1,usb=CDCgen" "https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json"',
11+
'"STM32:stm32:Nucleo_64:pnum=NUCLEO_L476RG" "https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json"',
12+
'"STM32:stm32:Disco:pnum=DISCO_L475VG_IOT" "https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json"'
1413
]
1514

1615
steps:

Diff for: examples/Peripheral/ButtonLED/ButtonLED.ino

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ void loop() {
104104
char buttonValue = digitalRead(buttonPin);
105105

106106
// has the value changed since the last read
107-
boolean buttonChanged = (buttonCharacteristic.value() != buttonValue);
107+
bool buttonChanged = (buttonCharacteristic.value() != buttonValue);
108108

109109
if (buttonChanged) {
110110
// button state changed, update characteristics

Diff for: src/BLETypedCharacteristics.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class BLEBoolCharacteristic : public BLETypedCharacteristic<bool> {
2727
BLEBoolCharacteristic(const char* uuid, unsigned char properties);
2828
};
2929

30-
class BLEBooleanCharacteristic : public BLETypedCharacteristic<boolean> {
30+
class BLEBooleanCharacteristic : public BLETypedCharacteristic<bool> {
3131
public:
3232
BLEBooleanCharacteristic(const char* uuid, unsigned char properties);
3333
};

Diff for: src/utility/ATT.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -1142,7 +1142,7 @@ void ATTClass::readByTypeResp(uint16_t connectionHandle, uint8_t dlen, uint8_t d
11421142

11431143
void ATTClass::writeReqOrCmd(uint16_t connectionHandle, uint16_t mtu, uint8_t op, uint8_t dlen, uint8_t data[])
11441144
{
1145-
boolean withResponse = (op == ATT_OP_WRITE_REQ);
1145+
bool withResponse = (op == ATT_OP_WRITE_REQ);
11461146

11471147
if (dlen < sizeof(uint16_t)) {
11481148
if (withResponse) {

Diff for: src/utility/HCISpiTransport.cpp

+9-10
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,14 @@
2121

2222
volatile int data_avail = 0;
2323

24-
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) :
24+
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) :
2525
_spi(&spi),
2626
_ble_chip(ble_chip),
2727
_cs_pin(cs_pin),
2828
_spi_irq(spi_irq),
29-
_ble_rst(ble_rst),
30-
_frequency(frequency),
31-
_spi_mode(spi_mode)
29+
_ble_rst(ble_rst)
3230
{
31+
_spiSettings = SPISettings(frequency, (BitOrder)BLE_SPI_BYTE_ORDER, spi_mode);
3332
_read_index = 0;
3433
_write_index = 0;
3534
_write_index_initial = 0;
@@ -125,7 +124,7 @@ int HCISpiTransportClass::available()
125124
detachInterrupt(_spi_irq);
126125
}
127126

128-
_spi->beginTransaction(SPISettings(_frequency, MSBFIRST, _spi_mode));
127+
_spi->beginTransaction(_spiSettings);
129128

130129
digitalWrite(_cs_pin, LOW);
131130

@@ -337,7 +336,7 @@ size_t HCISpiTransportClass::write(const uint8_t* data, size_t length)
337336
{
338337
result = 0;
339338

340-
_spi->beginTransaction(SPISettings(_frequency, MSBFIRST, _spi_mode));
339+
_spi->beginTransaction(_spiSettings);
341340

342341
digitalWrite(_cs_pin, LOW);
343342

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

377376
detachInterrupt(_spi_irq);
378377

379-
_spi->beginTransaction(SPISettings(_frequency, MSBFIRST, _spi_mode));
378+
_spi->beginTransaction(_spiSettings);
380379

381380
digitalWrite(_cs_pin, LOW);
382381

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

461-
_spi->beginTransaction(SPISettings(_frequency, MSBFIRST, _spi_mode));
460+
_spi->beginTransaction(_spiSettings);
462461

463462
digitalWrite(_cs_pin, LOW);
464463

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

529-
_spi->beginTransaction(SPISettings(_frequency, MSBFIRST, _spi_mode));
528+
_spi->beginTransaction(_spiSettings);
530529

531530
digitalWrite(_cs_pin, LOW);
532531

@@ -580,7 +579,7 @@ void HCISpiTransportClass::enable_ll_only()
580579
{
581580
result = 0;
582581

583-
_spi->beginTransaction(SPISettings(_frequency, MSBFIRST, _spi_mode));
582+
_spi->beginTransaction(_spiSettings);
584583

585584
digitalWrite(_cs_pin, LOW);
586585

Diff for: src/utility/HCISpiTransport.h

+5-3
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,14 @@ typedef enum BLEChip_s {
2929
BLUENRG_M2SP
3030
} BLEChip_t;
3131

32+
#ifndef BLE_SPI_BYTE_ORDER
33+
#define BLE_SPI_BYTE_ORDER MSBFIRST
34+
#endif
3235
#define BLE_MODULE_SPI_BUFFER_SIZE 128
3336

3437
class HCISpiTransportClass : public HCITransportInterface {
3538
public:
36-
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);
39+
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);
3740
virtual ~HCISpiTransportClass();
3841

3942
virtual int begin();
@@ -52,12 +55,11 @@ class HCISpiTransportClass : public HCITransportInterface {
5255
void wait_for_enable_ll_only();
5356
void enable_ll_only();
5457
SPIClass* _spi;
58+
SPISettings _spiSettings;
5559
BLEChip_t _ble_chip;
5660
uint8_t _cs_pin;
5761
uint8_t _spi_irq;
5862
uint8_t _ble_rst;
59-
unsigned long _frequency;
60-
int _spi_mode;
6163
uint8_t _rxbuff[BLE_MODULE_SPI_BUFFER_SIZE];
6264
uint16_t _read_index;
6365
uint16_t _write_index;

0 commit comments

Comments
 (0)