0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于單片機(jī)的SPI接口OLED顯示

CHANBAEK ? 來源:凌云物聯(lián)網(wǎng)實(shí)驗(yàn)室 ? 作者:郭工 ? 2022-12-19 09:23 ? 次閱讀

8.1 原理圖分析

查看EK-RA6M4的原理圖,如下圖所示,該開發(fā)板上的MikroBus接口上有提供一個(gè)SPI接口。

圖片

根據(jù)原理圖可知,SPI接口的四個(gè)引腳分別為:

功能 引腳
MISO P202
MOSI P203
SCK P204
CS P205

這里我們將在該SPI接口上連接 SPI OLED顯示屏(3.3V供電),該OLED顯示屏的接口定義如下:

引腳 功能 EK-RA6M4引腳
GND GND GND
VCC 3.3V 3.3V
D0 SCK P204
D1 MOSI P203
RST 復(fù)位(必須要控制 0->1) P207
DC Data(高電平)/Command(低電平) P206
CS 已接地,不用接

8.2 SPI接口配置

首先,在FSP配置中將SPI所用的兩個(gè)口P203、P204配置成SPI模式。

圖片

然后,在FSP配置中將數(shù)據(jù)命令選擇(DC)和兩個(gè)引腳P206、P207配置成GPIO模式。

圖片

圖片

接著選擇 Stacks ,點(diǎn)擊 "New Stack" -> "Connectivity" -> "SPI(r_spi)" 添加 SPI 協(xié)議棧。

圖片

接下來設(shè)置SPI的相關(guān)配置,并重新生成代碼。

圖片

圖片

  • 通過 Name 字段可以修改SPI中斷的名稱為 g_spi0_master,它將在IDE自動(dòng)生成的文件 ra_gen/hal_data.c/h 中定義SPI操作相關(guān)的變量;
  • 通過 Channel 字段可以修改SPI的通道號(hào),這里設(shè)置為0,下面的 Pins 將自動(dòng)選擇 P202、P203和 P204 這個(gè)引腳;
  • 在這里選擇使能所有的SPI中斷并設(shè)置優(yōu)先級(jí)為2級(jí)別,在這里保持默認(rèn)的SPI的工作模式、工作極性等;
  • 通過 Callback 字段設(shè)置SPI收發(fā)的中斷回調(diào)函數(shù) spi0_master_callback ,它將配置在 g_spi0_master_cfg 變量中,該函數(shù)需要我們自己實(shí)現(xiàn);
  • 通過 Full or Transmit Only Mode 字段,我們?cè)O(shè)置SPI工作在 Transmit Only 模式,這是因?yàn)槲覀兊?a target="_blank">MCU會(huì)給OLED發(fā)送數(shù)據(jù),而不會(huì)接收;
  • 通過 Bitrate 字段,可以修改SPI的速率。事實(shí)上這里設(shè)置為默認(rèn)的16MHz,OLED顯示屏也是可以正常工作的。

6.3 源碼修改

創(chuàng)建OLED操作相關(guān)的頭文件 src/bsp_oled.h 如下:

#ifndef BSP_OLED_H_
#define BSP_OLED_H_

#include 

extern void OLED_Init(void);
extern void OLED_Show_Picture(void);

#endif /* BSP_OLED_H_ */

創(chuàng)建OLED操作相關(guān)的c文件 src/bsp_oled.c 如下:

#include 
#include 
#include "r_spi_api.h"
#include "hal_data.h"


#define RESET_VALUE         0x00

static volatile spi_event_t spi_event;    // Master Transfer Event completion flag

static fsp_err_t spi_init(void);
static fsp_err_t spi_write(uint8_t *data, uint32_t bytes);
static fsp_err_t spi_read(uint8_t *buf, uint32_t size);

static inline void OLED_WrDat(uint8_t data)
{
    R_BSP_PinWrite(oled_cd, BSP_IO_LEVEL_HIGH);
    spi_write(&data, 1);
}

static inline void OLED_WrCmd(uint8_t cmd)
{
    R_BSP_PinWrite(oled_cd, BSP_IO_LEVEL_LOW);
    spi_write(&cmd, 1);
}

void OLED_Init()
{
    if( FSP_SUCCESS != spi_init() )
        return ;

    printf("Reset and initial OLED panel
");

    R_BSP_PinWrite(oled_rst, BSP_IO_LEVEL_LOW);
    R_BSP_SoftwareDelay(10, BSP_DELAY_UNITS_MILLISECONDS);
    R_BSP_PinWrite(oled_rst, BSP_IO_LEVEL_HIGH);

    OLED_WrCmd(0xAE);   //display off
    OLED_WrCmd(0x20);    //Set Memory Addressing Mode
    OLED_WrCmd(0x10);    //00,Horizontal Addressing Mode;01,Vertical Addressing Mode;10,Page Addressing Mode (RESET);11,Invalid
    OLED_WrCmd(0xb0);    //Set Page Start Address for Page Addressing Mode,0-7
    OLED_WrCmd(0xc8);    //Set COM Output Scan Direction
    OLED_WrCmd(0x00);//---set low column address
    OLED_WrCmd(0x10);//---set high column address
    OLED_WrCmd(0x40);//--set start line address
    OLED_WrCmd(0x81);//--set contrast control register
    OLED_WrCmd(0x7f);
    OLED_WrCmd(0xa1);//--set segment re-map 0 to 127
    OLED_WrCmd(0xa6);//--set normal display
    OLED_WrCmd(0xa8);//--set multiplex ratio(1 to 64)
    OLED_WrCmd(0x3F);//
    OLED_WrCmd(0xa4);//0xa4,Output follows RAM content;0xa5,Output ignores RAM content
    OLED_WrCmd(0xd3);//-set display offset
    OLED_WrCmd(0x00);//-not offset
    OLED_WrCmd(0xd5);//--set display clock divide ratio/oscillator frequency
    OLED_WrCmd(0xf0);//--set divide ratio
    OLED_WrCmd(0xd9);//--set pre-charge period
    OLED_WrCmd(0x22); //
    OLED_WrCmd(0xda);//--set com pins hardware configuration
    OLED_WrCmd(0x12);
    OLED_WrCmd(0xdb);//--set vcomh
    OLED_WrCmd(0x20);//0x20,0.77xVcc
    OLED_WrCmd(0x8d);//--set DC-DC enable
    OLED_WrCmd(0x14);//
    OLED_WrCmd(0xaf);//--turn on oled panel

    R_BSP_SoftwareDelay(5, BSP_DELAY_UNITS_MILLISECONDS);
}

/*+--------------------+
 *|   Show Picture API |
 *+--------------------+
 */
uint8_t picture_code[]=
{
0x00,0x06,0x0A,0xFE,0x0A,0xC6,0x00,0xE0,0x00,0xF0,0x00,0xF8,0x00,0x00,0x00,0x00,
0x00,0x00,0xFE,0x7D,0xBB,0xC7,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xC7,0xBB,0x7D,
0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,
0x0C,0xFE,0xFE,0x0C,0x08,0x20,0x60,0xFE,0xFE,0x60,0x20,0x00,0x00,0x00,0x78,0x48,
0xFE,0x82,0xBA,0xBA,0x82,0xBA,0xBA,0x82,0xBA,0xBA,0x82,0xBA,0xBA,0x82,0xFE,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,
0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0xFF,0xFF,0x00,0x00,0xFE,0xFF,0x03,
0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0xFF,0xFE,0x00,0x00,0x00,0x00,0xC0,0xC0,
0xC0,0x00,0x00,0x00,0x00,0xFE,0xFF,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
0xFF,0xFE,0x00,0x00,0xFE,0xFF,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0xFF,
0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x0C,
0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0xFF,0xFF,0x00,0x00,0x00,0x00,0xE1,0xE1,
0xE1,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0x0F,0x00,0x00,0x0F,0x1F,0x18,
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
0x1F,0x0F,0x00,0x00,0x0F,0x1F,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,
0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xE2,0x92,0x8A,0x86,0x00,0x00,0x7C,0x82,0x82,0x82,0x7C,
0x00,0xFE,0x00,0x82,0x92,0xAA,0xC6,0x00,0x00,0xC0,0xC0,0x00,0x7C,0x82,0x82,0x82,
0x7C,0x00,0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0xC0,0xC0,0x00,0x7C,0x82,0x82,0x82,
0x7C,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x24,0xA4,0x2E,0x24,0xE4,0x24,0x2E,0xA4,0x24,0x00,0x00,0x00,0xF8,0x4A,0x4C,
0x48,0xF8,0x48,0x4C,0x4A,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x20,0x10,0x10,
0x10,0x10,0x20,0xC0,0x00,0x00,0xC0,0x20,0x10,0x10,0x10,0x10,0x20,0xC0,0x00,0x00,
0x00,0x12,0x0A,0x07,0x02,0x7F,0x02,0x07,0x0A,0x12,0x00,0x00,0x00,0x0B,0x0A,0x0A,
0x0A,0x7F,0x0A,0x0A,0x0A,0x0B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x40,0x40,
0x40,0x50,0x20,0x5F,0x80,0x00,0x1F,0x20,0x40,0x40,0x40,0x50,0x20,0x5F,0x80,0x00,
};

void OLED_Show_Picture(void)
{
  unsigned char x,y;
  unsigned int i=0;
  for(y=0;y<8;y++)
    {
      OLED_WrCmd(0xb0+y);
      OLED_WrCmd(0x00);
      OLED_WrCmd(0x10);
      for(x=0;x<128;x++)
        {
          OLED_WrDat(picture_code[i++]);
        }
    }
}

/*+--------------+
 *|   SPI API    |
 *+--------------+
 */
static fsp_err_t spi_init(void)
{
    fsp_err_t err = FSP_SUCCESS;

    err = R_SPI_Open (&g_spi0_master_ctrl, &g_spi0_master_cfg);
    if (FSP_SUCCESS != err)
    {
        printf("** R_SPI_Open API for SPI Master failed ** 
");
        return err;
    }

    return err;
}

void spi0_master_callback(spi_callback_args_t * p_args)
{
    if (SPI_EVENT_TRANSFER_COMPLETE == p_args->event)
    {
        spi_event = SPI_EVENT_TRANSFER_COMPLETE;
    }
    else
    {
        spi_event = SPI_EVENT_TRANSFER_ABORTED;
    }
}

static inline fsp_err_t validate_spi_event(void)
{
    uint32_t local_time_out = UINT32_MAX;

    while( SPI_EVENT_TRANSFER_COMPLETE != spi_event )
    {
        --local_time_out;
        if(RESET_VALUE == local_time_out)
        {
            spi_event = (spi_event_t)RESET_VALUE;
            return FSP_ERR_TIMEOUT;
        }
    }

    if(spi_event == SPI_EVENT_TRANSFER_COMPLETE)
    {
        spi_event = (spi_event_t)RESET_VALUE;
        return FSP_SUCCESS;
    }

    spi_event = (spi_event_t)RESET_VALUE;
    return FSP_ERR_TRANSFER_ABORTED;
}

static fsp_err_t spi_write(uint8_t *data, uint32_t bytes)
{
    fsp_err_t err = FSP_SUCCESS;

    /* resetting call back event capture variable */
    spi_event = (spi_event_t)RESET_VALUE;

    err = R_SPI_Write(&g_spi0_master_ctrl, data, bytes, SPI_BIT_WIDTH_8_BITS);
    if(FSP_SUCCESS != err)
    {
        printf("Master R_SPI_Write() failed
");
        return err;
    }

    err = validate_spi_event();
    if (FSP_SUCCESS != err)
    {
        printf("** SPI write validate failed, err=%d ** 
", err);
        return err;
    }

    return FSP_SUCCESS;
}

__attribute__((unused)) static fsp_err_t spi_read(uint8_t *buf, uint32_t size)
{
    fsp_err_t err = FSP_SUCCESS;

    /* resetting call back event capture variable */
    spi_event = (spi_event_t)RESET_VALUE;

    err = R_SPI_Read(&g_spi0_master_ctrl, buf, size, SPI_BIT_WIDTH_8_BITS);
    if(FSP_SUCCESS != err)
    {
        printf("Master R_SPI_Write() failed
");
        return err;
    }

    err = validate_spi_event();
    if (FSP_SUCCESS != err)
    {
        printf("** SPI write validate failed, err=%d ** 
", err);
        return err;
    }

    return FSP_SUCCESS;
}

修改 src/hal_entry.c 源文件,在里面添加 OLED 初始化和顯示的代碼。

... ...
#include "bsp_oled.h"
... ...
void hal_entry(void)
{    
    ... ...

     OLED_Init();
    OLED_Show_Picture();

    while (1)
    {
    ... ...
}

8.4 編譯運(yùn)行

代碼修改完成后,在開發(fā)板上編譯運(yùn)行。這時(shí)可以看到OLED上顯示圖片如下:

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628367
  • OLED
    +關(guān)注

    關(guān)注

    119

    文章

    6130

    瀏覽量

    223092
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8257

    瀏覽量

    149952
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1669

    瀏覽量

    90729
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    單片機(jī)OLED顯示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    該文以宏晶公司的STC89C52單片機(jī)為控制核心,信意電子科技提供的0.96寸OLED模塊為顯示輸出設(shè)備,在Keil環(huán)境下編寫OLED顯示
    發(fā)表于 01-27 11:44 ?1.8w次閱讀

    AVR單片機(jī)與串行AD的SPI接口設(shè)計(jì)

    為了解決信號(hào)采集系統(tǒng)的同步串行通訊問題,在理解AVR 單片機(jī)SPI接口的通訊原 理和方法的基礎(chǔ)上,分析了AVR 單片機(jī)SPI
    發(fā)表于 02-18 16:07 ?211次下載
    AVR<b class='flag-5'>單片機(jī)</b>與串行AD的<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>設(shè)計(jì)

    AVR單片機(jī)串行接口SPI接口應(yīng)用設(shè)計(jì)

    使用的同步串行三線SPI接口,可以方便的連接采用SPI通信協(xié)議的外圍或另一片AVR單片機(jī),實(shí)現(xiàn)在短距離內(nèi)的高速同步通信.ATmega128的SPI
    發(fā)表于 11-09 17:37 ?3807次閱讀

    基于單片機(jī)OLED顯示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    為了提高圖形信息的顯示速度,并得到更多的顯示效果,文章基于FG_V1.2單片機(jī)開發(fā)板,依據(jù)OLED12864顯示屏的操作時(shí)序要求,用51
    發(fā)表于 12-31 09:20 ?23次下載

    基于單片機(jī)OLED顯示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    基于單片機(jī)OLED顯示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),沒有例程
    發(fā)表于 06-21 15:39 ?16次下載

    OLED顯示模塊與C8051F單片機(jī)接口設(shè)計(jì)

    OLED顯示模塊與C8051F單片機(jī)接口設(shè)計(jì)
    發(fā)表于 02-08 02:11 ?27次下載

    基于AVR單片機(jī)SPI的串行ADC接口設(shè)計(jì)

    基于AVR單片機(jī)SPI的串行ADC接口設(shè)計(jì)(開關(guān)電源技術(shù)與設(shè)計(jì)pdf百度云)-該文檔為基于AVR單片機(jī)SPI的串行ADC
    發(fā)表于 09-22 17:24 ?5次下載
    基于AVR<b class='flag-5'>單片機(jī)</b><b class='flag-5'>SPI</b>的串行ADC<b class='flag-5'>接口</b>設(shè)計(jì)

    利用51單片機(jī)+0.96寸iic接口oled顯示圖片或動(dòng)圖

    ~利用51單片機(jī)+0.96寸iic接口oled顯示圖片或動(dòng)圖
    發(fā)表于 11-10 17:21 ?33次下載
    利用51<b class='flag-5'>單片機(jī)</b>+0.96寸iic<b class='flag-5'>接口</b><b class='flag-5'>oled</b><b class='flag-5'>顯示</b>圖片或動(dòng)圖

    MSP430 F5529 硬件SPI OLED 單片機(jī) 0.96英寸7針OLED SPI 6針OLED

    MSP430 F5529 硬件SPI OLED 單片機(jī) 0.96英寸7針OLED SPI 6針OLED
    發(fā)表于 11-19 20:51 ?44次下載
    MSP430 F5529 硬件<b class='flag-5'>SPI</b> <b class='flag-5'>OLED</b> <b class='flag-5'>單片機(jī)</b> 0.96英寸7針<b class='flag-5'>OLED</b> <b class='flag-5'>SPI</b> 6針<b class='flag-5'>OLED</b>

    51單片機(jī) OLED Proteus SPI 仿真

    51單片機(jī) OLED Proteus SPI 仿真
    發(fā)表于 11-20 11:21 ?46次下載
    51<b class='flag-5'>單片機(jī)</b> <b class='flag-5'>OLED</b> Proteus <b class='flag-5'>SPI</b> 仿真

    基于SPI協(xié)議接口OLED數(shù)據(jù)顯示

    基于SPI協(xié)議接口OLED數(shù)據(jù)顯示文章目錄基于SPI協(xié)議接口
    發(fā)表于 12-22 19:38 ?27次下載
    基于<b class='flag-5'>SPI</b>協(xié)議<b class='flag-5'>接口</b>的<b class='flag-5'>OLED</b>數(shù)據(jù)<b class='flag-5'>顯示</b>

    基于51單片機(jī)OLED顯示圖片文字

    基于51單片機(jī)OLED屏幕顯示,可顯示圖片文字字母等。
    的頭像 發(fā)表于 06-12 00:43 ?1.4w次閱讀
    基于51<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>OLED</b><b class='flag-5'>顯示</b>圖片文字

    基于STM32單片機(jī)OLED顯示使用庫文件設(shè)計(jì)源代碼

    基于STM32單片機(jī)OLED顯示使用庫文件設(shè)計(jì)源代碼
    發(fā)表于 04-26 14:59 ?3次下載

    單片機(jī)軟件模擬SPI接口的解決方案

    電子發(fā)燒友網(wǎng)站提供《單片機(jī)軟件模擬SPI接口的解決方案.pdf》資料免費(fèi)下載
    發(fā)表于 10-13 11:31 ?2次下載
    <b class='flag-5'>單片機(jī)</b>軟件模擬<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>的解決方案

    基于單片機(jī)的全彩OLED靜態(tài)顯示驅(qū)動(dòng)接口電路

    電子發(fā)燒友網(wǎng)站提供《基于單片機(jī)的全彩OLED靜態(tài)顯示驅(qū)動(dòng)接口電路.pdf》資料免費(fèi)下載
    發(fā)表于 10-20 11:36 ?1次下載
    基于<b class='flag-5'>單片機(jī)</b>的全彩<b class='flag-5'>OLED</b>靜態(tài)<b class='flag-5'>顯示</b>驅(qū)動(dòng)<b class='flag-5'>接口</b>電路