2024年4月28日发(作者:)
GPIO模拟SPI通讯接口的驱动
一,某些时候我们会不得不使用GPIO来模拟SPI,I2C等通讯接口,如本例中,需要使用SPI
接口发送9位的数据,如果使用linux内核提供的SPI子系统来做这个驱动是无法实现9位传输数据
的。
二,用GPIO模拟SPI总的来说是比较简单,把相应的管脚配置成GPIO功能,再按需要配置管
脚的输入输出方向,然后根据SPI总线的时序设定IO口的电平。
三,驱动代码如下,以备今后作参考:
(linux-2.6.28 + TCC8900, 这个驱动是用来控制LCD的初始化的(型号为LW350AC9001))
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define PDEBUG
#ifdef PDEBUG
#define PLOG() printk(fmt,##args)
#else
#define PLOG() /*do nothing*/
#endif
#define SPI_CMD 0
#define SPI_DATA 1
#define FUN_GPIO 0
#define PIN_SDO 15 //GPIOF[15]
#define PIN_SDI 14
#define PIN_SCLK 16
发布评论