嵌入式学习小组
直播中

谭丽

7年用户 134经验值
私信 关注

请问SPI接口如何进行编程?

SPI接口如何进行编程

回帖(1)

李建宁

2020-11-11 14:37:24
  Pioneer 600扩展板配备一款0.96inch,128864分辨率的oled显示屏,通过SPI控制,先上显示效果图。由于程序过长,在这里我就不把代码全部贴出来了,只是简单讲解一下spi的操作函数。如果各位有兴趣可以下载程序,研究一下。如果程序有什么写得不好的地方,还望各位指正。
  1、bcm2835
  1bcm2835_spi_begin(); //启动spi接口,设置spi对应管脚为复用功能
  2bcm2835_spi_setBitOrder(BCM2835_SPI_BIT_ORDER_MSBFIRST); //高位先传输
  3bcm2835_spi_setDataMode(BCM2835_SPI_MODE0); //spi模式0
  4bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_128); //分频,
  5bcm2835_spi_chipSelect(BCM2835_SPI_CS0); //设置片选
  6bcm2835_spi_setChipSelectPolarity(BCM2835_SPI_CS0, LOW); //设置片选低电平有效
  1uint8_t bcm2835_spi_transfer(uint_t value) 传输一个字节
  2void bcm2835_spi_transfernb(char *tbuf,char *rbuf,uint32_t len) 传输n字节
  2、python
  安装spi库
  https://pypi.python.org/pypi/spidev/3.1
  下载spidev库,复制到树莓派,并行运行如下命令解压安装
  1tar –zxvf spidev-3.1.tar.gz
  2cd spidev
  3sudo python setup.py install
  安装imaging库
  1sudo apt-get install python-imaging
  python-spidev的使用方法:
  1import spidev
  导入库
  1bus=0
  2device=0
  3spi=SPI.SpiDev(bus,device)
  打开spi设备,此处设备为/dev/spi-decv0.0
  1spi.readbytes(n)
  从SPI设备读取n字节
  1spi.writebytes(list of value)
  将列表的数据写到SPI设备
  1spi.xfer(list of values[, speed_hz, delay_usec, bits_per_word])
  执行SPI传输。
  
举报

更多回帖

发帖
×
20
完善资料,
赚取积分