@@ -57,10 +57,9 @@ SPIClass::SPIClass(uint32_t mosi, uint32_t miso, uint32_t sclk, uint32_t ssel)
57
57
void SPIClass::begin (void )
58
58
{
59
59
_spi.handle .State = HAL_SPI_STATE_RESET;
60
- _spiSettings = DEFAULT_SPI_SETTINGS;
61
- spi_init (&_spi, _spiSettings.getClockFreq (),
62
- _spiSettings.getDataMode (),
63
- _spiSettings.getBitOrder ());
60
+ spi_init (&_spi, _spiSettings.clk ,
61
+ _spiSettings.dMode ,
62
+ _spiSettings.bOrder );
64
63
}
65
64
66
65
/* *
@@ -70,12 +69,14 @@ void SPIClass::begin(void)
70
69
*/
71
70
void SPIClass::beginTransaction (SPISettings settings)
72
71
{
73
- if (_spiSettings != settings) {
74
- _spiSettings = settings;
75
- spi_init (&_spi, _spiSettings.getClockFreq (),
76
- _spiSettings.getDataMode (),
77
- _spiSettings.getBitOrder ());
78
- }
72
+ _spiSettings.clk = settings.clk ;
73
+ _spiSettings.dMode = settings.dMode ;
74
+ _spiSettings.bOrder = settings.bOrder ;
75
+ _spiSettings.noReceive = settings.noReceive ;
76
+
77
+ spi_init (&_spi, _spiSettings.clk ,
78
+ _spiSettings.dMode ,
79
+ _spiSettings.bOrder );
79
80
}
80
81
81
82
/* *
@@ -101,37 +102,39 @@ void SPIClass::end()
101
102
*/
102
103
void SPIClass::setBitOrder (BitOrder bitOrder)
103
104
{
104
- _spiSettings.setBitOrder ( bitOrder) ;
105
+ _spiSettings.bOrder = bitOrder;
105
106
106
- spi_init (&_spi, _spiSettings.getClockFreq () ,
107
- _spiSettings.getDataMode () ,
108
- _spiSettings.getBitOrder () );
107
+ spi_init (&_spi, _spiSettings.clk ,
108
+ _spiSettings.dMode ,
109
+ _spiSettings.bOrder );
109
110
}
110
111
111
112
/* *
112
113
* @brief Deprecated function.
113
114
* Configure the data mode (clock polarity and clock phase)
114
- * @param mode : SPI_MODE0, SPI_MODE1, SPI_MODE2 or SPI_MODE3
115
+ * @param _mode : SPI_MODE0, SPI_MODE1, SPI_MODE2 or SPI_MODE3
115
116
* @note
116
117
* Mode Clock Polarity (CPOL) Clock Phase (CPHA)
117
118
* SPI_MODE0 0 0
118
119
* SPI_MODE1 0 1
119
120
* SPI_MODE2 1 0
120
121
* SPI_MODE3 1 1
121
122
*/
122
-
123
- void SPIClass::setDataMode (uint8_t mode)
123
+ void SPIClass::setDataMode (uint8_t _mode)
124
124
{
125
- setDataMode ((SPIMode)mode);
126
- }
127
-
128
- void SPIClass::setDataMode (SPIMode mode)
129
- {
130
- _spiSettings.setDataMode (mode);
125
+ if (SPI_MODE0 == _mode) {
126
+ _spiSettings.dMode = SPI_MODE_0;
127
+ } else if (SPI_MODE1 == _mode) {
128
+ _spiSettings.dMode = SPI_MODE_1;
129
+ } else if (SPI_MODE2 == _mode) {
130
+ _spiSettings.dMode = SPI_MODE_2;
131
+ } else if (SPI_MODE3 == _mode) {
132
+ _spiSettings.dMode = SPI_MODE_3;
133
+ }
131
134
132
- spi_init (&_spi, _spiSettings.getClockFreq () ,
133
- _spiSettings.getDataMode () ,
134
- _spiSettings.getBitOrder () );
135
+ spi_init (&_spi, _spiSettings.clk ,
136
+ _spiSettings.dMode ,
137
+ _spiSettings.bOrder );
135
138
}
136
139
137
140
/* *
@@ -143,15 +146,15 @@ void SPIClass::setDataMode(SPIMode mode)
143
146
void SPIClass::setClockDivider (uint8_t _divider)
144
147
{
145
148
if (_divider == 0 ) {
146
- _spiSettings.setClockFreq ( SPI_SPEED_CLOCK_DEFAULT) ;
149
+ _spiSettings.clk = SPI_SPEED_CLOCK_DEFAULT;
147
150
} else {
148
- /* Get clock freq of the SPI instance and compute it */
149
- _spiSettings.setClockFreq ( spi_getClkFreq (&_spi) / _divider) ;
151
+ /* Get clk freq of the SPI instance and compute it */
152
+ _spiSettings.clk = spi_getClkFreq (&_spi) / _divider;
150
153
}
151
154
152
- spi_init (&_spi, _spiSettings.getClockFreq () ,
153
- _spiSettings.getDataMode () ,
154
- _spiSettings.getBitOrder () );
155
+ spi_init (&_spi, _spiSettings.clk ,
156
+ _spiSettings.dMode ,
157
+ _spiSettings.bOrder );
155
158
}
156
159
157
160
/* *
@@ -160,9 +163,9 @@ void SPIClass::setClockDivider(uint8_t _divider)
160
163
* @param data: byte to send.
161
164
* @return byte received from the slave.
162
165
*/
163
- uint8_t SPIClass::transfer (uint8_t data)
166
+ byte SPIClass::transfer (uint8_t data)
164
167
{
165
- spi_transfer (&_spi, &data, sizeof (uint8_t ), SPI_TRANSFER_TIMEOUT, _spiSettings.getSkipRecv () );
168
+ spi_transfer (&_spi, &data, sizeof (uint8_t ), SPI_TRANSFER_TIMEOUT, _spiSettings.noReceive );
166
169
return data;
167
170
}
168
171
@@ -176,14 +179,14 @@ uint16_t SPIClass::transfer16(uint16_t data)
176
179
{
177
180
uint16_t tmp;
178
181
179
- if (_spiSettings.getBitOrder () ) {
182
+ if (_spiSettings.bOrder ) {
180
183
tmp = ((data & 0xff00 ) >> 8 ) | ((data & 0xff ) << 8 );
181
184
data = tmp;
182
185
}
183
186
spi_transfer (&_spi, (uint8_t *)&data, sizeof (uint16_t ),
184
- SPI_TRANSFER_TIMEOUT, _spiSettings.getSkipRecv () );
187
+ SPI_TRANSFER_TIMEOUT, _spiSettings.noReceive );
185
188
186
- if (_spiSettings.getBitOrder () ) {
189
+ if (_spiSettings.bOrder ) {
187
190
tmp = ((data & 0xff00 ) >> 8 ) | ((data & 0xff ) << 8 );
188
191
data = tmp;
189
192
}
@@ -194,30 +197,22 @@ uint16_t SPIClass::transfer16(uint16_t data)
194
197
/* *
195
198
* @brief Transfer several bytes. Only one buffer used to send and receive data.
196
199
* begin() or beginTransaction() must be called at least once before.
197
- * @param buf : pointer to the bytes to send. The bytes received are copy in
200
+ * @param _buf : pointer to the bytes to send. The bytes received are copy in
198
201
* this buffer.
199
- * @param count : number of bytes to send/receive.
202
+ * @param _count : number of bytes to send/receive.
200
203
*/
201
- void SPIClass::transfer (void *buf , size_t count )
204
+ void SPIClass::transfer (void *_buf , size_t _count )
202
205
{
203
206
if ((count != 0 ) && (buf != NULL )) {
204
207
spi_transfer (&_spi, ((uint8_t *)buf), count,
205
- SPI_TRANSFER_TIMEOUT, _spiSettings.getSkipRecv () );
208
+ SPI_TRANSFER_TIMEOUT, _spiSettings.noReceive );
206
209
}
207
210
}
208
211
209
212
/* *
210
213
* @brief Not implemented.
211
214
*/
212
- void SPIClass::usingInterrupt (int interruptNumber)
213
- {
214
- UNUSED (interruptNumber);
215
- }
216
-
217
- /* *
218
- * @brief Not implemented.
219
- */
220
- void SPIClass::notUsingInterrupt (int interruptNumber)
215
+ void SPIClass::usingInterrupt (uint8_t interruptNumber)
221
216
{
222
217
UNUSED (interruptNumber);
223
218
}
0 commit comments