spidevを使用する
設計内容分類 | RaspberryPi活用 |
---|
実現したい仕様・課題
設計のポイント
C言語でラズベリーパイのソフトウェアを開発する場合、spidevを使用することでSPI通信を簡単に行うことが可能です。
●ヘッダ
#include <sys/ioctl.h>
#include <linux/spi/spidev.h>
●SPIデバイスのオープン
fd = open(“/dev/spidev0.0”, O_RDWR);
●SPI動作設定
//SPIモード
ret = ioctl(fd, SPI_IOC_WR_MODE, &mode);
//SCKクロック周波数(Hz)
ret = ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &freq);
●データ転送
struct spi_ioc_transfer tr = {
.tx_buf = (unsigned long)tx,
.rx_buf = (unsigned long)rx,
.len = sizeof(tx),
.delay_usecs = 0,
.speed_hz = speed,
.bits_per_word = bits,
};
ioctl(fd, SPI_IOC_MESSAGE(1), &tr);
補足情報