#324 Full SPI Bus documentation german

This commit is contained in:
mstroh
2025-03-01 11:27:47 +01:00
committed by GitHub
parent 7bde79fba9
commit f0db02b638

View File

@@ -452,7 +452,7 @@ Die anderen Schreib- und Lese-Funktionen verwenden das SMBus-Protokoll, das übl
### wiringPiI2CSetup ### wiringPiI2CSetup
Öffnet den default I2C-Bus am Raspberry Pi und adressiert das angegebene Gerät / Slave. Öffnet den default I2C-Bus und adressiert das angegebene Gerät / Slave.
>>> >>>
```C ```C
@@ -496,7 +496,6 @@ int fd = wiringPiI2CSetupInterface("/dev/i2c-1", 0x20);
### wiringPiI2CRawWrite ### wiringPiI2CRawWrite
Schreiben von Daten zu einem I2C-Slave. Schreiben von Daten zu einem I2C-Slave.
>>> >>>
@@ -565,22 +564,26 @@ if (fd>0) {
## SPI - Bus ## SPI - Bus
Funktionen die mit ``wiringPiSPIx`` beginnen sind neu in der Version 3, mit ihnen kann auch die SPI-Bus Nummer angegeben werden. Funktionen die mit ``wiringPiSPIx`` beginnen sind neu in der Version 3, mit ihnen kann auch die SPI-Bus Nummer angegeben werden.
Dies ist vorallem nützlich für das Compute Module das über mehere SPI-Busse (0-3) verfügt. Dies ist vorallem nützlich für das Compute Module das über mehere SPI-Busse (0-7) verfügt.
Die alten Funktionen bleiben erhalten beziehen sich allerdings immer auf den SPI Bus 0 der am 40-GPIO Anschluss verfügbar ist. Die alten Funktionen bleiben erhalten beziehen sich allerdings immer auf den SPI Bus 0 der am 40-GPIO Anschluss verfügbar ist.
### wiringPiSPISetup ### wiringPiSPISetup / wiringPiSPISetupMode / wiringPiSPIxSetupMode
Öffnet den default SPI-Bus am Raspberry Pi und adressiert das angegebene Gerät / Slave. Öffnet den default SPI-Bus.
>>> >>>
```C ```C
int wiringPiSPISetup (int channel, int speed) int wiringPiSPISetup (int channel, int speed)
int wiringPiSPISetup (int channel, int speed, int mode)
int wiringPiSPIxSetupMode(const int number, const int channel, const int speed, const int mode)
``` ```
``channel``: SPI Kanal (0 oder 1). ``number``: SPI Nummer (typisch 0, bei Compute Modul 0-7).
``channel``: SPI Kanal (typisch 0 oder 1, bei Compute Modul 0-3).
``speed``: SPI Taktrate. ``speed``: SPI Taktrate.
``Rückgabewert``: Datei Handle zum SPI-Bus ``mode``: SPI Modus (https://www.kernel.org/doc/Documentation/spi/spidev).
``Rückgabewert``: Datei Handle zum SPI-Bus
> -1 ... Fehler bzw. EXIT (Programm Beendigung) > -1 ... Fehler bzw. EXIT (Programm Beendigung)
**Beispiel** **Beispiel**
@@ -591,10 +594,82 @@ const int spiSpeedInit = 250000; // Hz
int hSPI; int hSPI;
if ((hSPI = wiringPiSPISetup (spiChannel, spiSpeed)) < 0) { if ((hSPI = wiringPiSPISetup (spiChannel, spiSpeed)) < 0) {
FailAndExitWithErrno("wiringPiSPISetup", hSPI); //error
} }
... //operate SPI
wiringPiSPIClose(spiChannel);
```
### wiringPiSPIDataRW / wiringPiSPIxDataRW
Eine synchrone Schreibe- und Leseoperation am geöffneten SPI Bus wird duchgeführt. Dabei werden die gesendetet Daten von dem empfangenen überschrieben.
>>>
```C
int wiringPiSPIDataRW (int channel, unsigned char *data, int len)
int wiringPiSPIxDataRW (const int number, const int channel, unsigned char *data, const int len)
```
``number``: SPI Nummer (typisch 0, bei Compute Modul 0-7).
``channel``: SPI Kanal (typisch 0 oder 1, bei Compute Modul 0-3).
``data``: Datenpuffer
``len``: Größe des ``data`` Puffes bzw der Daten.
``Rückgabewert``: Rückgabewert des ``ioctl`` Befehls (https://man7.org/linux/man-pages/man2/ioctl.2.html)
<0 ... Fehler, siehe ``errno`` für Fehlernummer
**Beispiel**
>>>
```C
const int spiChannel = 1;
const int spiSpeedInit = 250000; // Hz
int hSPI;
if ((hSPI = wiringPiSPIxSetupMode (0, spiChannel, spiSpeed, 0)) < 0) {
//error
}
unsigned char spiData[3];
int returnvalue
spiData[0] = 0b11010000;
spiData[1] = 0;
spiData[2] = 0;
returnvalue = wiringPiSPIxDataRW(0, spiChannel, spiData, 3);
if (returnvalue<=0) {
printf("SPI transfer error: %d\n", errno);
}
wiringPiSPIxClose(0, spiChannel);
```
### wiringPiSPIGetFd / wiringPiSPIxGetFd
Liefert den Datei Handel zum geöffneten SPI-Bus. Um z.B. eigene SPI-Funktion aufrufen zu können.
>>>
```C
int wiringPiSPIGetFd(int channel)
int wiringPiSPIxGetFd(const int number, int channel)
```
``number``: SPI Nummer (typisch 0, bei Compute Modul 0-7).
``channel``: SPI Kanal (typisch 0 oder 1, bei Compute Modul 0-3).
``Rückgabewert``: Datei Handle zum SPI-Bus
> -1 ... Ungültig bzw. nicht geöffnet
**Beispiel**
>>>
```C
const int spiChannel = 1;
const int spiSpeedInit = 250000; // Hz
int hSPI;
if ((hSPI = wiringPiSPISetup (spiChannel, spiSpeed)) < 0) {
//error
}
int fd_spi = wiringPiSPIGetFd(spiChannel);
wiringPiSPIClose(spiChannel); wiringPiSPIClose(spiChannel);
``` ```