android 获取gpio电平值_使用GPIO实现SPI协议操作OLED

来源:百问网_嵌入式Linux wiki_jz2440 新1期视频维基教程 (视频文字版)作者:韦东山本文字数:5055,阅读时长:3分钟现在开始写代码,使用GPIO实现SPI协议操作。我们现在想要操作OLED,通过三条线(SCK、DO、CS)与OLED相连,这里没有DI是因为2440只会向OLED传数据而不用接收数据。我们要用GPIO来实现SOC向OLED写数据,这一层用gpio_spi.c来实...
摘要由CSDN通过智能技术生成
6f5aba2031c3cb56135f35a249b433f0.png

来源:百问网_嵌入式Linux wiki_jz2440 新1期视频维基教程 (视频文字版)

作者:韦东山

本文字数:5055,阅读时长:3分钟

现在开始写代码,使用GPIO实现SPI协议操作。

我们现在想要操作OLED,通过三条线(SCK、DO、CS)与OLED相连,这里没有DI是因为2440只会向OLED传数据而不用接收数据。

我们要用GPIO来实现SOC向OLED写数据,这一层用gpio_spi.c来实现,负责发送数据。

对于OLED,有专门的指令和数据格式,要传输的数据内容,在oled.c这一层来实现,负责组织数据。

因此,我们需要实现以上两个文件。

f61a837c0fdc7076908bdaab67d69015.png

需要实现的函数:先SPI初始化SPIInt(),再初始化OLEDOLEDInit(),最后再显示OLEDPrint()。

新建一个gpio_spi.c文件,实现SPI初始化SPIInt()

void SPIInit(void){    /* 初始化引脚 */    SPI_GPIO_Init();}

再具体实现SPI_GPIO_Init()。这里使用GPIO实现SPI协议,电路图如下:

e7aafc88e1d0e433c5ec48068d12cad5.png
GPF1作为OLED片选引脚,设置为输出;GPG2作为FLASH片选引脚,设置为输出;GPG4作为OLED的数据(Data)/命令(Command)选择引脚,设置为输出;GPG5作为SPI的MISO,设置为输入;GPG6作为SPI的MOSI,设置为输出;GPG7作为SPI的时钟CLK,设置为输出;
/* 用GPIO模拟SPI */static void SPI_GPIO_Init(void){    /* GPF1 OLED_CSn output */    GPFCON &= ~(3<

再新建一个oled.c文件,以实现初始化OLEDOLEDInit()

void OLEDInit(void){/* 向OLED发命令以初始化 */}查阅OLED数据手册SPEC UG-2864TMBEG01.pdf可以得知其初始化流程和参考的初始化代码:vo
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值