平台:树莓派 bcm2835 Raspberry Pi 3 Model B Rev 1.2
SPI是串行外设接口,这里用的外设是oled的12864显示屏,使用树莓派点亮它学习Linux SPI应用的开发。(这里不使用python库、wiringPi库和bcm2835驱动库)
代码没有自己写,用了libssd1306这个代码库,作者的github名为michaelKle。另外参考了csdn名为TAlice文章《Linux下树莓派spi编程》的代码,感谢他们。
libssd1306代码有两个问题:第一是外设地址不对,0x20000000 改为0x3f000000;第二是spi发送结构体没有初始化,加上memset。
树莓派的SPI默认可能没有打开,需要配置重启,具体方法网上很多,这里不赘述。最终会在/dev/下生成两个spi的设备文件。
使用spi就要打开这个设备文件,并且对SPI设备进行配置。
使用ioctl函数配置,需要配置spi传输模式,