Lib BurstSPI give access to fastWrite function and clearRX function, this lib is now compatible with Nucleo L152RE board
Fork of BurstSPI by
Diff: BurstSPI.h
- Revision:
- 3:7d9b64d67b22
- Parent:
- 2:a8e55f7cbfee
--- a/BurstSPI.h Fri Jan 04 09:51:42 2013 +0000 +++ b/BurstSPI.h Thu Jul 04 19:03:58 2013 +0000 @@ -26,7 +26,8 @@ * the normal mbed library. With this library it takes 25ms, which is also the theoretical * amount of time it should take. If you are running at 1MHz this will do alot less. */ -class BurstSPI : public SPI { +class BurstSPI : public SPI +{ public: /** Create a SPI master connected to the specified pins * @@ -39,7 +40,7 @@ * @param miso SPI Master In, Slave Out pin * @param sclk SPI Clock pin */ - BurstSPI(PinName mosi, PinName miso, PinName sclk); + BurstSPI(PinName mosi, PinName miso, PinName sclk) : SPI(mosi, miso, sclk) {}; /** Put data packet in the SPI TX FIFO buffer * @@ -49,17 +50,20 @@ * @param data Data to be sent to the SPI slave */ void fastWrite(int data); - + /** Use this function before fastWrite to set the correct settings - * + * * It is not needed to use this if the last SPI commands were either normal SPI transmissions, * or setting different format/frequency for this object. It is required to call this * function when several SPI objects use the same peripheral, and your last transmission was * from a different object with different settings. Not sure if you should use it? * Use it, it takes very little time to execute, so can't hurt. */ - void setFormat( void ); - + void setFormat( void ) { + format(_bits, _mode); + frequency(_hz); + } + /** After you are done with fastWrite, call this function * * FastWrite simply fills the SPI's (SSP's actually) TX FIFO buffer as fast as it can, @@ -67,34 +71,34 @@ * so the the RX buffer is full with unneeded packets. This function waits until transmission is finished, * and clears the RX buffer. You always have to call this before you want to receive * SPI data after using fastWrite. - */ + */ void clearRX( void ); - - + + //Just for documentation: - #if 0 +#if 0 /** Configure the data transmission format * * @param bits Number of bits per SPI frame (4 - 16) * @param mode Clock polarity and phase mode (0 - 3) * * @code - * mode | POL PHA - * -----+-------- - * 0 | 0 0 + * mode | POL PHA + * -----+-------- + * 0 | 0 0 * 1 | 0 1 - * 2 | 1 0 + * 2 | 1 0 * 3 | 1 1 * @endcode */ void format(int bits, int mode = 0); - + /** Set the spi bus clock frequency * * @param hz SCLK frequency in hz (default = 1MHz) */ void frequency(int hz = 1000000); - + /** Write to the SPI Slave and return the response * * @param value Data to be sent to the SPI slave @@ -103,7 +107,7 @@ * Response from the SPI slave */ virtual int write(int value); - #endif +#endif };