Class CSPIBus

La classe CSPIBus représente un bus SPI et exporte toutes les fonctions nécessaires à l'ouverture de composants et à l'échange de données avec ceux-ci.


Les fonctions traitant du bus SPI sont publiques et peuvent être utilisées. Il est cepandant conseillé d'utiliser, pour échanger des données sur ce bus la classe CSPIDevice ou toutes autres classes héritant de ces deux dernières. La librairie ne supporte que le bus SPI0.


Pour des exemples et informations sur l'utilisation des bus I2C et SPI, se reporter à la rubrique : Exemples I2C et SPI avec cpp2835.

Fonctions publiques

CSPIBus(C2835Driver* pDriver)
boolClose()
C2835Driver*Driver()
boolOpen(const SPI_BIT_ORDER& eSpiBitOrder, const SPI_CLOCK_DIVIDER& eSpiClockDivider, const SPI_DATA_MODE& eSpiDataMode)
boolSetBusParameters(const SPI_BIT_ORDER& eSpiBitOrder, const SPI_CLOCK_DIVIDER& eSpiClockDivider, const SPI_DATA_MODE& eSpiDataMode)
boolSetChipSelect(const GPIO_PIN& eGpioPin, const SPI_CS_POLARITY& eSpiCSPolarity)
boolTransfer(const uint8_t& bVal)
boolTransferBuffer(uint8_t* pbVal, const uint32_t& uLen)
boolWrite(const uchar& cVal)
boolWriteBuffer(const char* pcVal, const uint32_t& uLen)
boolWriteRead(const uchar& cVal, uchar* pcValRet)
boolWriteReadBuffer(char* const pcVal, char* pcValRet, const uint32_t& uLen)


CSPIBus::CSPIBus(C2835Driver* pDriver)

Description : Contructeur. Instancie un objet de la classe CSPIBus.


Paramètre : pDriver - type C2835Driver* - Pointeur vers l'objet C2835Drver instancié et initialisé en amont de cet appel.



bool CSPIBus::Close()

Description : Termine les communications sur le bus SPI.


Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.



C2835Driver* CSPIBus::Driver()

Description : Retourne le pointeur vers l'objet C2835Driver passé au constructeur de la classe.


Valeur de retour : Pointeur vers l'objet C2835Driver passé au constructeur de la classe.



bool CSPIBus::Open(const SPI_BIT_ORDER& eSpiBitOrder, const SPI_CLOCK_DIVIDER& eSpiClockDivider, const SPI_DATA_MODE& eSpiDataMode)

Description : Ouvre l'accès au bus SPI. Cette fonction doit être appelée avant toute autre fonction de lecture ou écriture sur le bus SPI.


Paramètre : eSpiBitOrder - type SPI_BIT_ORDER - Réglage des l'odre des bit.

Paramètre : eSpiClockDivider - type SPI_CLOCK_DIVIDER - Diviseur de l'horloge SPI permettant d'ajuster la fréquence du bus.

Paramètre : eSpiDataMode - type SPI_DATA_MODE - Réglage du mode SPI.


Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.



bool CSPIBus::SetBusParameters(const SPI_BIT_ORDER& eSpiBitOrder, const SPI_CLOCK_DIVIDER& eSpiClockDivider, const SPI_DATA_MODE& eSpiDataMode)

Description : Modifie les paramètres du bus SPI.


Paramètre : eSpiBitOrder - type SPI_BIT_ORDER - Réglage des l'odre des bit.

Paramètre : eSpiClockDivider - type SPI_CLOCK_DIVIDER - Diviseur de l'horloge SPI permettant d'ajuster la fréquence du bus.

Paramètre : eSpiDataMode - type SPI_DATA_MODE - Réglage du mode SPI.


Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.



bool CSPIBus::SetChipSelect(const GPIO_PIN& eGpioPin, const SPI_CS_POLARITY& eSpiCSPolarity)

Description : Définie une ligne CS du bus SPI.


Paramètre : eGpioPin - type GPIO_PIN - Ligne GPIO attribuée au signal CS du bus SPI.

Paramètre : eSpiCSPolarity - type SPI_CS_POLARITY - Polarité de la ligne CS.

Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.



bool CSPIBus::Transfer(const uint8_t& bVal)

Description : Emet l'octet bVal sur le bus SPI.


Paramètre : bVal - type uint8_t - Octet à émettre.

Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.



bool CSPIBus::TransferBuffer(uint8_t* pbVal, const uint32_t& uLen)

Description : Emet le buffer pbVal de longueur uLen sur le bus SPI.


Paramètre : pbVal - type uint8_t* - Pointeur vers le buffer d'octets à émettre.

Paramètre : uLen - type uint32_t - Taille du buffer d'octets à émettre.

Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.



bool CSPIBus::Write(const uchar& cVal)

Description : Ecrit un octet sur le bus SPI.


Paramètre : cVal - type uchar - Octet à écrire sur le bus.

Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.



bool CSPIBus::WriteBuffer(const char* pcVal, const uint32_t& uLen)

Description : Ecrit un buffer d'octets sur le bus SPI.


Paramètre : pcVal - type char* - Buffer d'octets à écrire sur le bus.

Paramètre : uLen - type uint32_t - Taille du buffer d'octets à émettre.

Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.



bool CSPIBus::WriteRead(const uchar& cVal, uchar* pcValRet)

Description : Ecrit un octet puis lit un octet sur le bus SPI.


Paramètre : cVal - type uchar - Octet à écrire sur le bus.

Paramètre de sortie : pcValRet - type uchar* - Pointeur vers l'octet reçu.

Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.



bool CSPIBus::WriteReadBuffer(char* const pcVal, char* pcValRet, const uint32_t& uLen)

Description : Ecrit un buffer d'octets puis lit un buffer d'octets de taile uLen sur le bus SPI.


Paramètre : pcVal - type char* - Buffer d'octets à écrire sur le bus.

Paramètre de sortie : pcValRet - type char* - Pointeur vers le buffer d'octets reçus.

Paramètre : uLen - type uint32_t - Nombre d'octets à lire.

Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.