@@ -46,28 +46,28 @@ SPIClass::SPIClass(uint32_t mosi, uint32_t miso, uint32_t sclk, uint32_t ssel)
46
46
47
47
/* *
48
48
* @brief Initialize the SPI instance.
49
+ * @param device: device mode (optional), SPI_MASTER or SPI_SLAVE. Default is master.
49
50
*/
50
- void SPIClass::begin (void )
51
+ void SPIClass::begin (SPIDeviceMode device )
51
52
{
52
53
_spi.handle .State = HAL_SPI_STATE_RESET;
53
54
_spiSettings = SPISettings ();
54
- spi_init (&_spi, _spiSettings.clockFreq ,
55
- _spiSettings.dataMode ,
56
- _spiSettings.bitOrder );
55
+ _spiSettings.deviceMode = device;
56
+ spi_init (&_spi, _spiSettings. clockFreq , _spiSettings.dataMode ,
57
+ _spiSettings.bitOrder , _spiSettings. deviceMode );
57
58
}
58
59
59
60
/* *
60
61
* @brief This function should be used to configure the SPI instance in case you
61
62
* don't use the default parameters set by the begin() function.
62
- * @param settings: SPI settings(clock speed, bit order, data mode).
63
+ * @param settings: SPI settings(clock speed, bit order, data mode, device mode ).
63
64
*/
64
65
void SPIClass::beginTransaction (SPISettings settings)
65
66
{
66
67
if (_spiSettings != settings) {
67
68
_spiSettings = settings;
68
- spi_init (&_spi, _spiSettings.clockFreq ,
69
- _spiSettings.dataMode ,
70
- _spiSettings.bitOrder );
69
+ spi_init (&_spi, _spiSettings.clockFreq , _spiSettings.dataMode ,
70
+ _spiSettings.bitOrder , _spiSettings.deviceMode );
71
71
}
72
72
}
73
73
@@ -96,9 +96,8 @@ void SPIClass::setBitOrder(BitOrder bitOrder)
96
96
{
97
97
_spiSettings.bitOrder = bitOrder;
98
98
99
- spi_init (&_spi, _spiSettings.clockFreq ,
100
- _spiSettings.dataMode ,
101
- _spiSettings.bitOrder );
99
+ spi_init (&_spi, _spiSettings.clockFreq , _spiSettings.dataMode ,
100
+ _spiSettings.bitOrder , _spiSettings.deviceMode );
102
101
}
103
102
104
103
/* *
@@ -120,9 +119,8 @@ void SPIClass::setDataMode(uint8_t mode)
120
119
void SPIClass::setDataMode (SPIMode mode)
121
120
{
122
121
_spiSettings.dataMode = mode;
123
- spi_init (&_spi, _spiSettings.clockFreq ,
124
- _spiSettings.dataMode ,
125
- _spiSettings.bitOrder );
122
+ spi_init (&_spi, _spiSettings.clockFreq , _spiSettings.dataMode ,
123
+ _spiSettings.bitOrder , _spiSettings.deviceMode );
126
124
}
127
125
128
126
/* *
@@ -140,9 +138,8 @@ void SPIClass::setClockDivider(uint8_t divider)
140
138
_spiSettings.clockFreq = spi_getClkFreq (&_spi) / divider;
141
139
}
142
140
143
- spi_init (&_spi, _spiSettings.clockFreq ,
144
- _spiSettings.dataMode ,
145
- _spiSettings.bitOrder );
141
+ spi_init (&_spi, _spiSettings.clockFreq , _spiSettings.dataMode ,
142
+ _spiSettings.bitOrder , _spiSettings.deviceMode );
146
143
}
147
144
148
145
/* *
0 commit comments