@@ -57,10 +57,9 @@ SPIClass::SPIClass(uint32_t mosi, uint32_t miso, uint32_t sclk, uint32_t ssel)
5757void SPIClass::begin (void )
5858{
5959 _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 );
6463}
6564
6665/* *
@@ -70,12 +69,14 @@ void SPIClass::begin(void)
7069 */
7170void SPIClass::beginTransaction (SPISettings settings)
7271{
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 );
7980}
8081
8182/* *
@@ -101,37 +102,39 @@ void SPIClass::end()
101102 */
102103void SPIClass::setBitOrder (BitOrder bitOrder)
103104{
104- _spiSettings.setBitOrder ( bitOrder) ;
105+ _spiSettings.bOrder = bitOrder;
105106
106- spi_init (&_spi, _spiSettings.getClockFreq () ,
107- _spiSettings.getDataMode () ,
108- _spiSettings.getBitOrder () );
107+ spi_init (&_spi, _spiSettings.clk ,
108+ _spiSettings.dMode ,
109+ _spiSettings.bOrder );
109110}
110111
111112/* *
112113 * @brief Deprecated function.
113114 * 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
115116 * @note
116117 * Mode Clock Polarity (CPOL) Clock Phase (CPHA)
117118 * SPI_MODE0 0 0
118119 * SPI_MODE1 0 1
119120 * SPI_MODE2 1 0
120121 * SPI_MODE3 1 1
121122 */
122-
123- void SPIClass::setDataMode (uint8_t mode)
123+ void SPIClass::setDataMode (uint8_t _mode)
124124{
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+ }
131134
132- spi_init (&_spi, _spiSettings.getClockFreq () ,
133- _spiSettings.getDataMode () ,
134- _spiSettings.getBitOrder () );
135+ spi_init (&_spi, _spiSettings.clk ,
136+ _spiSettings.dMode ,
137+ _spiSettings.bOrder );
135138}
136139
137140/* *
@@ -143,15 +146,15 @@ void SPIClass::setDataMode(SPIMode mode)
143146void SPIClass::setClockDivider (uint8_t _divider)
144147{
145148 if (_divider == 0 ) {
146- _spiSettings.setClockFreq ( SPI_SPEED_CLOCK_DEFAULT) ;
149+ _spiSettings.clk = SPI_SPEED_CLOCK_DEFAULT;
147150 } 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;
150153 }
151154
152- spi_init (&_spi, _spiSettings.getClockFreq () ,
153- _spiSettings.getDataMode () ,
154- _spiSettings.getBitOrder () );
155+ spi_init (&_spi, _spiSettings.clk ,
156+ _spiSettings.dMode ,
157+ _spiSettings.bOrder );
155158}
156159
157160/* *
@@ -160,9 +163,9 @@ void SPIClass::setClockDivider(uint8_t _divider)
160163 * @param data: byte to send.
161164 * @return byte received from the slave.
162165 */
163- uint8_t SPIClass::transfer (uint8_t data)
166+ byte SPIClass::transfer (uint8_t data)
164167{
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 );
166169 return data;
167170}
168171
@@ -176,14 +179,14 @@ uint16_t SPIClass::transfer16(uint16_t data)
176179{
177180 uint16_t tmp;
178181
179- if (_spiSettings.getBitOrder () ) {
182+ if (_spiSettings.bOrder ) {
180183 tmp = ((data & 0xff00 ) >> 8 ) | ((data & 0xff ) << 8 );
181184 data = tmp;
182185 }
183186 spi_transfer (&_spi, (uint8_t *)&data, sizeof (uint16_t ),
184- SPI_TRANSFER_TIMEOUT, _spiSettings.getSkipRecv () );
187+ SPI_TRANSFER_TIMEOUT, _spiSettings.noReceive );
185188
186- if (_spiSettings.getBitOrder () ) {
189+ if (_spiSettings.bOrder ) {
187190 tmp = ((data & 0xff00 ) >> 8 ) | ((data & 0xff ) << 8 );
188191 data = tmp;
189192 }
@@ -194,30 +197,22 @@ uint16_t SPIClass::transfer16(uint16_t data)
194197/* *
195198 * @brief Transfer several bytes. Only one buffer used to send and receive data.
196199 * 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
198201 * this buffer.
199- * @param count : number of bytes to send/receive.
202+ * @param _count : number of bytes to send/receive.
200203 */
201- void SPIClass::transfer (void *buf , size_t count )
204+ void SPIClass::transfer (void *_buf , size_t _count )
202205{
203206 if ((count != 0 ) && (buf != NULL )) {
204207 spi_transfer (&_spi, ((uint8_t *)buf), count,
205- SPI_TRANSFER_TIMEOUT, _spiSettings.getSkipRecv () );
208+ SPI_TRANSFER_TIMEOUT, _spiSettings.noReceive );
206209 }
207210}
208211
209212/* *
210213 * @brief Not implemented.
211214 */
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)
221216{
222217 UNUSED (interruptNumber);
223218}
0 commit comments