在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

瑞薩e2studio----IIC,OLED時(shí)鐘日歷

RA生態(tài)工作室 ? 2021-12-02 17:56 ? 次閱讀
pYYBAGGA3i6Af0z4AABdWrtWoBM374.png


1.概述

本篇文章主要介紹如何使用e2studio對(duì)瑞薩進(jìn)行IIC配置,同時(shí)移植stm32上的12864oled到瑞薩上,并通過(guò)OLED顯示RTC時(shí)鐘日歷。

2.硬件準(zhǔn)備

首先需要準(zhǔn)備一個(gè)開(kāi)發(fā)板,這里我準(zhǔn)備的是芯片型號(hào) R7FA2L1AB2DFL 的開(kāi)發(fā)板。

pYYBAGGLLTuAKokoAAL5D_IbQXA990.png


3.新建工程

e1ac6628-51d0-11ec-a27f-dac502259ad0.png


4.工程模板

e20dc2d8-51d0-11ec-a27f-dac502259ad0.png

5.保存工程路徑

e26193fe-51d0-11ec-a27f-dac502259ad0.png


6.芯片配置

本文中使用R7FA2L1AB2DFL來(lái)進(jìn)行演示。

e2abdedc-51d0-11ec-a27f-dac502259ad0.png

7.工程模板選擇

e2e3f240-51d0-11ec-a27f-dac502259ad0.png


8.IIC配置

點(diǎn)擊Stacks->New Stack->Driver->Connectivity->I2C Master Driver on r_iic_master。

e331315e-51d0-11ec-a27f-dac502259ad0.png

9.IIC屬性配置

設(shè)置IIC的配置,需要注意從機(jī)的地址,在stm32等程序中寫的是0x78,但是這里的地址位數(shù)是7位,故需要右移一位,變成0x3c。

e38f1864-51d0-11ec-a27f-dac502259ad0.png


10.RTC配置

點(diǎn)擊Stacks->New Stack->Driver->Timers -> RTC Driver on r_rtc。

e3d74576-51d0-11ec-a27f-dac502259ad0.png


11.RTC屬性配置

e42b70b0-51d0-11ec-a27f-dac502259ad0.png


12.設(shè)置E2STUDIO堆棧

e470e6e0-51d0-11ec-a27f-dac502259ad0.png


13.R_IIC_MASTER_Open()函數(shù)原型

e4d04ab8-51d0-11ec-a27f-dac502259ad0.png

R_IIC_MASTER_Open()函數(shù)為執(zhí)行IIC初始化,開(kāi)啟配置如下所示。


 /* Initialize the IIC module */    
 err =R_IIC_MASTER_Open(&g_i2c_master0_ctrl, &g_i2c_master0_cfg);     
 assert(FSP_SUCCESS == err);


14.R_IIC_MASTER_Write()函數(shù)原型

e50a02a8-51d0-11ec-a27f-dac502259ad0.png

R_IIC_MASTER_Write()函數(shù)是向IIC設(shè)備中寫入數(shù)據(jù),寫入格式如下所示。

 err = R_IIC_MASTER_Write(&g_i2c_device_ctrl_1, &g_i2c_tx_buffer[0], I2C_BUFFER_SIZE_BYTES, false);
 assert(FSP_SUCCESS == err);


15.R_RTC_Open()函數(shù)原型

e550e9e8-51d0-11ec-a27f-dac502259ad0.png

故可以用R_RTC_Open()函數(shù)進(jìn)行初始化和開(kāi)啟RTC。


err = R_RTC_Open(&g_rtc0_ctrl, &g_rtc0_cfg);    
assert(FSP_SUCCESS == err);


16.R_RTC_CalendarTimeSet()函數(shù)原型

e5c8d7e6-51d0-11ec-a27f-dac502259ad0.png

故可以用R_RTC_CalendarTimeSet()函數(shù)進(jìn)行設(shè)置當(dāng)前日歷時(shí)間。


/* R_RTC_CalendarTimeSet must be called at least once to start the RTC */    
R_RTC_CalendarTimeSet(&g_rtc0_ctrl, &set_time);


17.R_RTC_PeriodicIrqRateSet()函數(shù)原型

e60bc998-51d0-11ec-a27f-dac502259ad0.png

故可以用R_RTC_PeriodicIrqRateSet()函數(shù)進(jìn)行設(shè)置周期中斷。


/* Set the periodic interrupt rate to 1 second */    
R_RTC_PeriodicIrqRateSet(&g_rtc0_ctrl, RTC_PERIODIC_IRQ_SELECT_1_SECOND);


18.R_RTC_CalendarTimeGet ()函數(shù)原型

e66f3424-51d0-11ec-a27f-dac502259ad0.png

故可以用R_RTC_CalendarTimeGet ()函數(shù)進(jìn)行獲取RTC計(jì)數(shù)時(shí)間。

R_RTC_CalendarTimeGet(&g_rtc0_ctrl, &get_time);//獲取RTC計(jì)數(shù)時(shí)間

19.設(shè)定時(shí)間

開(kāi)啟RTC之后需要設(shè)定當(dāng)前的時(shí)間,可以通過(guò) R_RTC_CalendarTimeSet( &g_rtc0_ctrl , &set_time ) 設(shè)定時(shí)間,具體時(shí)間可以通過(guò)set_time進(jìn)行修改,設(shè)置如下所示。


/* rtc_time_t is an alias for the C Standard time.h struct 'tm' */
rtc_time_t set_time =
{
    .tm_sec  = 0,      /* 秒,范圍從 0 到 59 */
    .tm_min  = 30,      /* 分,范圍從 0 到 59 */
    .tm_hour = 12,      /* 小時(shí),范圍從 0 到 23*/
    .tm_mday = 20,       /* 一月中的第幾天,范圍從 1 到 31*/
    .tm_mon  = 11,      /* 月份,范圍從 0 到 11*/
    .tm_year = 121,     /* 自 1900 起的年數(shù),2021為121*/
//    .tm_wday = 5,       /* 一周中的第幾天,范圍從 0 到 6*/
//    .tm_yday=0,         /* 一年中的第幾天,范圍從 0 到 365*/
//    .tm_isdst=0;        /* 夏令時(shí)*/
};


20.設(shè)定周期性中斷

若要用RTC進(jìn)行固定延時(shí)中斷,可以用 R_RTC_PeriodicIrqRateSet ( rtc_ctrl_t *const p_ctrl , rtc_periodic_irq_select_t const rate ) 來(lái)進(jìn)行設(shè)置,例如設(shè)置1s,設(shè)置如下:

R_RTC_PeriodicIrqRateSet(&g_rtc0_ctrl, RTC_PERIODIC_IRQ_SELECT_1_SECOND );

每當(dāng)周期性中斷產(chǎn)生時(shí),可以觸發(fā)回調(diào)函數(shù)的事件RTC_EVENT_PERIODIC_IRQ。

21.STM32移植瑞薩說(shuō)明

在STM32的12864OLED中,最開(kāi)始需要對(duì)OLED進(jìn)行初始化,代碼如下。


void WriteCmd(void)
{    
    uint8_t i = 0;    
    for(i=0; i<27; i++)  
    {    
        HAL_I2C_Mem_Write(&hi2c1 ,0x78,0x00,I2C_MEMADD_SIZE_8BIT,CMD_Data+i,1,0x100);    
    }
}

在STM32的IIC寫函數(shù)為HAL_I2C_Mem_Write(),需要修改為瑞薩的R_IIC_MASTER_Write()。

其中數(shù)組CMD_Data[]中放著的是初始化需要寫入的數(shù)據(jù),故在瑞薩中可以定義一個(gè)數(shù)組ii[2],其中ii[0]中放的是設(shè)備地址0x00,ii[1]中放入所需要的初始化的數(shù)據(jù)即可,R_IIC_MASTER_Write(&g_i2c_master0_ctrl, ii, 0x02, true);

void WriteCmd(void)
{    
    uint8_t i = 0;    
    uint8_t ii[2]={0x00,0x00};    
    for(i=0;i<27;i++)    
    {        
        ii[1]=CMD_Data[i];        
        err = R_IIC_MASTER_Write(&g_i2c_master0_ctrl, ii, 0x02, true);        
        assert(FSP_SUCCESS == err);        
        /* Since there is nothing else to do, block until Callback triggers*/        
        while ((I2C_MASTER_EVENT_TX_COMPLETE != i2c_event) && timeout_ms>0)        
        {            
            R_BSP_SoftwareDelay(1U, BSP_DELAY_UNITS_MICROSECONDS);            
            timeout_ms--;        
        }        
        if (I2C_MASTER_EVENT_ABORTED == i2c_event)        
        {            
            __BKPT(0);        
        }        
        /* Read data back from the I2C slave */        
        i2c_event = I2C_MASTER_EVENT_ABORTED;        
        timeout_ms           = 100;    
    }
}

在STM32的12864OLED中,最重要的代碼分別是向設(shè)備寫控制命令OLED_WR_CMD()以及向設(shè)備寫數(shù)據(jù)OLED_WR_DATA()。


//向設(shè)備寫控制命令
void OLED_WR_CMD(uint8_t cmd)
{    
    HAL_I2C_Mem_Write(&hi2c1 ,0x78,0x00,I2C_MEMADD_SIZE_8BIT,&cmd,1,0x100);
}
//向設(shè)備寫數(shù)據(jù)
void OLED_WR_DATA(uint8_t data)
{    
    HAL_I2C_Mem_Write(&hi2c1 ,0x78,0x40,I2C_MEMADD_SIZE_8BIT,&data,1,0x100);
}

他們的數(shù)據(jù)可是都是設(shè)備地址+器件地址+數(shù)據(jù)的傳輸方式,故在瑞薩中可以定義一個(gè)數(shù)組ii[2],其中ii[0]中放的是器件地址,ii[1]中放入所需要的寫入數(shù)據(jù)即可,R_IIC_MASTER_Write(&g_i2c_master0_ctrl, ii, 0x02, true);故重寫后如下所示。

   //向設(shè)備寫控制命令    
void OLED_WR_CMD(uint8_t cmd)    
{        
    uint8_t ii[2]={0x00,0x00};        
    ii[1]=cmd;        
    err = R_IIC_MASTER_Write(&g_i2c_master0_ctrl, ii, 0x02, true);        
    assert(FSP_SUCCESS == err);        
    /* Since there is nothing else to do, block until Callback triggers*/        
    //while ((I2C_MASTER_EVENT_TX_COMPLETE != i2c_event) && timeout_ms)       
    while ((I2C_MASTER_EVENT_TX_COMPLETE != i2c_event) && timeout_ms>0)        
    {            
        R_BSP_SoftwareDelay(1U, BSP_DELAY_UNITS_MICROSECONDS);            
        timeout_ms--;        
    }        
    if (I2C_MASTER_EVENT_ABORTED == i2c_event)        
    {            
        __BKPT(0);        
    }        
    /* Read data back from the I2C slave */        
    i2c_event = I2C_MASTER_EVENT_ABORTED;        
    timeout_ms           = 100;    
}

//向設(shè)備寫數(shù)據(jù)    
void OLED_WR_DATA(uint8_t data)    
{        
    uint8_t ii[2]={0x40,0x00};        
    ii[1]=data;        
    err = R_IIC_MASTER_Write(&g_i2c_master0_ctrl, ii, 0x02, true);        
    assert(FSP_SUCCESS == err);        
    /* Since there is nothing else to do, block until Callback triggers*/        
    while ((I2C_MASTER_EVENT_TX_COMPLETE != i2c_event) && timeout_ms>0)        
    {            
        R_BSP_SoftwareDelay(1U, BSP_DELAY_UNITS_MICROSECONDS);            
        timeout_ms--;        
    }        
    if (I2C_MASTER_EVENT_ABORTED == i2c_event)        
    {            
        __BKPT(0);        
    }        
    /* Read data back from the I2C slave */        
    i2c_event = I2C_MASTER_EVENT_ABORTED;       
    timeout_ms           = 100;    
}


22.STM32移植瑞薩文件說(shuō)明

在移植過(guò)程中,需要添加三個(gè)文件,其中oledfont.h放入需要顯示的數(shù)據(jù),oled.c是驅(qū)動(dòng)文件,oled.h是頭文件,代碼在最后給出。

e6ae07e4-51d0-11ec-a27f-dac502259ad0.png


23.取模

顯示漢字需要先進(jìn)行取模,生成字模前先進(jìn)行設(shè)置。

e6f430e8-51d0-11ec-a27f-dac502259ad0.png

設(shè)置完之后就可以取自己想要漢字的編碼,輸入完畢點(diǎn)擊生成字模即可。

e76995a4-51d0-11ec-a27f-dac502259ad0.png

將取得的編碼放入oledfont.h的Hzk數(shù)組中即可。

e7b0e364-51d0-11ec-a27f-dac502259ad0.pnge7f55396-51d0-11ec-a27f-dac502259ad0.png


24.演示效果

e84a0116-51d0-11ec-a27f-dac502259ad0.gif


25.主程序代碼hal_enter.c

#include "hal_data.h"
#include "oled.h"
FSP_CPP_HEADER
void R_BSP_WarmStart(bsp_warm_start_event_t event);
FSP_CPP_FOOTER

i2c_master_event_t i2c_event = I2C_MASTER_EVENT_ABORTED;
void IIC_master_callback(i2c_master_callback_args_t *p_args)
{
    i2c_event = I2C_MASTER_EVENT_ABORTED;
    if (NULL != p_args)
    {
        /* capture callback event for validating the i2c transfer event*/
        i2c_event = p_args->event;
    }
}

fsp_err_t err = FSP_SUCCESS;
int  timeout_ms = 100;

/* rtc_time_t is an alias for the C Standard time.h struct 'tm' */
rtc_time_t set_time =
{
    .tm_sec  = 11,      /* 秒,范圍從 0 到 59 */
    .tm_min  = 11,      /* 分,范圍從 0 到 59 */
    .tm_hour = 11,      /* 小時(shí),范圍從 0 到 23*/
    .tm_mday = 11,       /* 一月中的第幾天,范圍從 1 到 31*/
    .tm_mon  = 11,      /* 月份,范圍從 0 到 11*/
    .tm_year = 121,     /* 自 1900 起的年數(shù),2021為121*/
//    .tm_wday = 5,       /* 一周中的第幾天,范圍從 0 到 6*/
//    .tm_yday=0,         /* 一年中的第幾天,范圍從 0 到 365*/
//    .tm_isdst=0;        /* 夏令時(shí)*/
};

volatile bool rtc_flag = 0;//RTC延時(shí)1s標(biāo)志位
/* Callback function */
void rtc_callback(rtc_callback_args_t *p_args)
{
    /* TODO: add your own code here */
    if(p_args->event == RTC_EVENT_PERIODIC_IRQ)
        rtc_flag=1;
}

void hal_entry(void)
{
    /* TODO: add your own code here */

    /* Initialize the RTC module*/
       err = R_RTC_Open(&g_rtc0_ctrl, &g_rtc0_cfg);
       /* Handle any errors. This function should be defined by the user. */
       assert(FSP_SUCCESS == err);
       /* R_RTC_CalendarTimeSet must be called at least once to start the RTC */
       R_RTC_CalendarTimeSet(&g_rtc0_ctrl, &set_time);
       /* Set the periodic interrupt rate to 1 second */
       R_RTC_PeriodicIrqRateSet(&g_rtc0_ctrl, RTC_PERIODIC_IRQ_SELECT_1_SECOND);

       uint8_t rtc_second= 11;      //秒
       uint8_t rtc_minute =11;      //分
       uint8_t rtc_hour =11;         //時(shí)
       uint8_t rtc_day =11;          //日
       uint8_t rtc_month =11;      //月
       uint16_t rtc_year =121;        //年
       uint8_t rtc_week =0;        //周
       rtc_time_t get_time;

        /* IIC初始化*/
        err = R_IIC_MASTER_Open(&g_i2c_master0_ctrl, &g_i2c_master0_cfg);
        assert(FSP_SUCCESS == err);
        WriteCmd();//OLED初始化
        OLED_Clear();//清屏

        OLED_ShowString(16,1,"RA",16);
        OLED_ShowCHinese(32,1,3);//生
        OLED_ShowCHinese(48,1,4);//態(tài)
        OLED_ShowCHinese(64,1,5);//工
        OLED_ShowCHinese(80,1,6);//作
        OLED_ShowCHinese(96,1,7);//室
        OLED_ShowCHinese(40,5,0);//年
        OLED_ShowCHinese(72,5,1);//月
        OLED_ShowCHinese(104,5,2);//日
        OLED_ShowString(32,3,"11:11:11",16);

        while(1)
            {
                if(rtc_flag)
                {
                    R_RTC_CalendarTimeGet(&g_rtc0_ctrl, &get_time);//獲取RTC計(jì)數(shù)時(shí)間
                    rtc_flag=0;
                    rtc_second=get_time.tm_sec;//秒
                    rtc_minute=get_time.tm_min;//分
                    rtc_hour=get_time.tm_hour;//時(shí)
                    rtc_day=get_time.tm_mday;//日
                    rtc_month=get_time.tm_mon;//月
                    rtc_year=get_time.tm_year; //年
                    rtc_week=get_time.tm_wday;//周
                }
                    OLED_ShowNum(8,5,rtc_year+1900,4,16);//年
                    OLED_ShowNum(56,5,rtc_month,2,16);//月
                    OLED_ShowNum(88,5,rtc_day,2,16);//日
                    OLED_ShowNum(32,3,rtc_hour,2,16);//時(shí)
                    OLED_ShowNum(56,3,rtc_minute,2,16);//分
                    OLED_ShowNum(80,3,rtc_second,2,16);//秒

            }

#if BSP_TZ_SECURE_BUILD
    /* Enter non-secure code */
    R_BSP_NonSecureEnter();
#endif
}



26.oled.c

#include "oled.h"
#include "oledfont.h"          //頭文件
#include "hal_data.h"
#include "stdint.h"

uint8_t CMD_Data[]={
0xAE,
0x00,
0x10,
0x40,
0xB0,
0x81,
0xFF,
0xA1,
0xA6,
0xA8,
0x3F,
0xC8,
0xD3,
0x00,
0xD5,
0x80,
0xD8,
0x05,
0xD9,
0xF1,
0xDA,
0x12,
0xD8,
0x30,
0x8D,
0x14,
0xAF
};      //初始化命令

extern fsp_err_t err;
extern int  timeout_ms;
extern  i2c_master_event_t i2c_event ;

void WriteCmd(void)
{
    uint8_t i = 0;
    uint8_t ii[2]={0x00,0x00};

    for(i=0;i<27;i++)
    {
        ii[1]=CMD_Data[i];
        err = R_IIC_MASTER_Write(&g_i2c_master0_ctrl, ii, 0x02, true);
        assert(FSP_SUCCESS == err);

        /* Since there is nothing else to do, block until Callback triggers*/
        while ((I2C_MASTER_EVENT_TX_COMPLETE != i2c_event) && timeout_ms>0)
        {
            R_BSP_SoftwareDelay(1U, BSP_DELAY_UNITS_MICROSECONDS);
            timeout_ms--;
        }

        if (I2C_MASTER_EVENT_ABORTED == i2c_event)
        {
            __BKPT(0);
        }
        /* Read data back from the I2C slave */
        i2c_event = I2C_MASTER_EVENT_ABORTED;
        timeout_ms           = 100;
    }
}

    //向設(shè)備寫控制命令
    void OLED_WR_CMD(uint8_t cmd)
    {
        uint8_t ii[2]={0x00,0x00};

        ii[1]=cmd;
        err = R_IIC_MASTER_Write(&g_i2c_master0_ctrl, ii, 0x02, true);
        assert(FSP_SUCCESS == err);
        /* Since there is nothing else to do, block until Callback triggers*/
        //while ((I2C_MASTER_EVENT_TX_COMPLETE != i2c_event) && timeout_ms)
        while ((I2C_MASTER_EVENT_TX_COMPLETE != i2c_event) && timeout_ms>0)
        {
            R_BSP_SoftwareDelay(1U, BSP_DELAY_UNITS_MICROSECONDS);
            timeout_ms--;
        }

        if (I2C_MASTER_EVENT_ABORTED == i2c_event)
        {
            __BKPT(0);
        }
        /* Read data back from the I2C slave */
        i2c_event = I2C_MASTER_EVENT_ABORTED;
        timeout_ms           = 100;

    }
    //向設(shè)備寫數(shù)據(jù)
    void OLED_WR_DATA(uint8_t data)
    {
        uint8_t ii[2]={0x40,0x00};
        ii[1]=data;
        err = R_IIC_MASTER_Write(&g_i2c_master0_ctrl, ii, 0x02, true);
        assert(FSP_SUCCESS == err);
        /* Since there is nothing else to do, block until Callback triggers*/
        while ((I2C_MASTER_EVENT_TX_COMPLETE != i2c_event) && timeout_ms>0)
        {
            R_BSP_SoftwareDelay(1U, BSP_DELAY_UNITS_MICROSECONDS);
            timeout_ms--;
        }
        if (I2C_MASTER_EVENT_ABORTED == i2c_event)
        {
            __BKPT(0);
        }
        /* Read data back from the I2C slave */
        i2c_event = I2C_MASTER_EVENT_ABORTED;
        timeout_ms           = 100;
    }

    //清屏
void OLED_Clear(void)
{
    uint8_t i,n;
    for(i=0;i<8;i++)
    {
        OLED_WR_CMD(0xb0+i);//設(shè)置頁(yè)地址(0~7)
        OLED_WR_CMD (0x00); //設(shè)置顯示位置—列低地址
        OLED_WR_CMD (0x10); //設(shè)置顯示位置—列高地址
        for(n=0;n<128;n++)
            OLED_WR_DATA(0);//更新顯示
        }

/*
    for(i=0; i<27; i++)
    {
        HAL_I2C_Mem_Write(&hi2c1 ,0x78,0x00,I2C_MEMADD_SIZE_8BIT,CMD_Data+i,1,0x100);
    }

    */
}

//開(kāi)啟OLED顯示
void OLED_Display_On(void)
{
    OLED_WR_CMD(0X8D);  //SET DCDC命令
    OLED_WR_CMD(0X14);  //DCDC ON
    OLED_WR_CMD(0XAF);  //DISPLAY ON
}
//關(guān)閉OLED顯示
void OLED_Display_Off(void)
{
    OLED_WR_CMD(0X8D);  //SET DCDC命令
    OLED_WR_CMD(0X10);  //DCDC OFF
    OLED_WR_CMD(0XAE);  //DISPLAY OFF
}

//坐標(biāo)設(shè)置
void OLED_Set_Pos(uint8_t x, uint8_t y)
{
    OLED_WR_CMD(0xb0+y);
    OLED_WR_CMD(((x&0xf0)>>4)|0x10);
    OLED_WR_CMD(x&0x0f);
}

void OLED_On(void)
{
    uint8_t i,n;
    for(i=0;i<8;i++)
    {
        OLED_WR_CMD(0xb0+i);    //設(shè)置頁(yè)地址(0~7)
        OLED_WR_CMD(0x00);      //設(shè)置顯示位置—列低地址
        OLED_WR_CMD(0x10);      //設(shè)置顯示位置—列高地址
        for(n=0;n<128;n++)
            OLED_WR_DATA(1);
    } //更新顯示
}
unsigned int oled_pow(uint8_t m,uint8_t n)
{
    unsigned int result=1;
    while(n--)result*=m;
    return result;
}
//顯示2個(gè)數(shù)字
//x,y :起點(diǎn)坐標(biāo)
//len :數(shù)字的位數(shù)
//size:字體大小
//mode:模式   0,填充模式;1,疊加模式
//num:數(shù)值(0~4294967295);
void OLED_ShowNum(uint8_t x,uint8_t y,unsigned int num,uint8_t len,uint8_t size2)
{
    uint8_t t,temp;
    uint8_t enshow=0;
    for(t=0;t128-1)
        {
            x=0;
            y=y+2;
        }
        if(Char_Size ==16)
            {
            OLED_Set_Pos(x,y);
            for(i=0;i<8;i++)
                OLED_WR_DATA(F8X16[c*16+i]);
            OLED_Set_Pos(x,y+1);
            for(i=0;i<8;i++)
                OLED_WR_DATA(F8X16[c*16+i+8]);
            }
            else {
                OLED_Set_Pos(x,y);
                for(i=0;i<6;i++)
                OLED_WR_DATA(F6x8[c][i]);
            }
}

//顯示一個(gè)字符號(hào)串
void OLED_ShowString(uint8_t x,uint8_t y,uint8_t *chr,uint8_t Char_Size)
{
    unsigned char j=0;
    while (chr[j]!='\0')
    {
        OLED_ShowChar(x,y,chr[j],Char_Size);//一次顯示一個(gè)字符
            x+=8;
        if(x>120){x=0;y+=2;}
            j++;
    }
}

//顯示漢字
//hzk 用取模軟件得出的數(shù)組
void OLED_ShowCHinese(uint8_t x,uint8_t y,uint8_t no)
{
    uint8_t t,adder=0;
//定位(0xbx,x為第幾行。0x1x ,x為列地址 高四位;0x0x,x為列地址第4位。
//比如你想定 位到第3行,第126(0x7e)列,就要寫WrCmd(0xb3);WrCmd(0x17);WrCmd(0x0e);)
    OLED_Set_Pos(x,y);
    for(t=0;t<16;t++)
        {
                OLED_WR_DATA(Hzk[2*no][t]);
                adder+=1;
     }
        OLED_Set_Pos(x,y+1);
    for(t=0;t<16;t++)
            {
                OLED_WR_DATA(Hzk[2*no+1][t]);
                adder+=1;
      }
}

//--------------------------------------------------------------
// Prototype      : void OLED_DrawBMP(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char BMP[]);
// Calls          :
// Parameters     : x0,y0 -- 起始點(diǎn)坐標(biāo)(x0:0~127, y0:0~7); x1,y1 -- 起點(diǎn)對(duì)角線(結(jié)束點(diǎn))的坐標(biāo)(x1:1~128,y1:1~8)
// Description    : 顯示BMP位圖
//--------------------------------------------------------------
void OLED_DrawBMP(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char BMP[])
{
    unsigned int j=0;
    unsigned char x,y;

  if(y1%8==0)
        y = y1/8;
  else
        y = y1/8 + 1;
    for(y=y0;y;y++)>;t++)>

27.oled.h

#ifndef OLED_H_
#define OLED_H_
#include "stdint.h"

void WriteCmd(void);
void OLED_WR_CMD(uint8_t cmd);
void OLED_WR_DATA(uint8_t data);
void OLED_Init(void);
void OLED_Clear(void);
void OLED_Display_On(void);
void OLED_Display_Off(void);
void OLED_Set_Pos(uint8_t x, uint8_t y);
void OLED_On(void);
void OLED_ShowNum(uint8_t x,uint8_t y,unsigned int num,uint8_t len,uint8_t size2);
void OLED_ShowChar(uint8_t x,uint8_t y,uint8_t chr,uint8_t Char_Size);
void OLED_ShowString(uint8_t x,uint8_t y,uint8_t *chr,uint8_t Char_Size);
void OLED_ShowCHinese(uint8_t x,uint8_t y,uint8_t no);
void OLED_DrawBMP(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char BMP[]);

#endif /* OLED_H_ */

28.oledfont.h

#ifndef OLEDFONT_H_
#define OLEDFONT_H_
#include "stdint.h"

//8*6 ASCII字符集點(diǎn)陣
const unsigned char F6x8[][6] =
{
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// sp
    0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,// !
    0x00, 0x00, 0x07, 0x00, 0x07, 0x00,// "
    0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,// #
    0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,// $
    0x00, 0x62, 0x64, 0x08, 0x13, 0x23,// %
    0x00, 0x36, 0x49, 0x55, 0x22, 0x50,// &
    0x00, 0x00, 0x05, 0x03, 0x00, 0x00,// '
    0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,// (
    0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,// )
    0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,// *
    0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,// +
    0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,// ,
    0x00, 0x08, 0x08, 0x08, 0x08, 0x08,// -
    0x00, 0x00, 0x60, 0x60, 0x00, 0x00,// .
    0x00, 0x20, 0x10, 0x08, 0x04, 0x02,// /
    0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
    0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,// 1
    0x00, 0x42, 0x61, 0x51, 0x49, 0x46,// 2
    0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,// 3
    0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,// 4
    0x00, 0x27, 0x45, 0x45, 0x45, 0x39,// 5
    0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
    0x00, 0x01, 0x71, 0x09, 0x05, 0x03,// 7
    0x00, 0x36, 0x49, 0x49, 0x49, 0x36,// 8
    0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,// 9
    0x00, 0x00, 0x36, 0x36, 0x00, 0x00,// :
    0x00, 0x00, 0x56, 0x36, 0x00, 0x00,// ;
    0x00, 0x08, 0x14, 0x22, 0x41, 0x00,// <
    0x00, 0x14, 0x14, 0x14, 0x14, 0x14,// =
    0x00, 0x00, 0x41, 0x22, 0x14, 0x08,// >
    0x00, 0x02, 0x01, 0x51, 0x09, 0x06,// ?
    0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,// @
    0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,// A
    0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,// B
    0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,// C
    0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,// D
    0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,// E
    0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,// F
    0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,// G
    0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,// H
    0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,// I
    0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,// J
    0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,// K
    0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,// L
    0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,// M
    0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,// N
    0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,// O
    0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,// P
    0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
    0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,// R
    0x00, 0x46, 0x49, 0x49, 0x49, 0x31,// S
    0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,// T
    0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,// U
    0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,// V
    0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,// W
    0x00, 0x63, 0x14, 0x08, 0x14, 0x63,// X
    0x00, 0x07, 0x08, 0x70, 0x08, 0x07,// Y
    0x00, 0x61, 0x51, 0x49, 0x45, 0x43,// Z
    0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,// [
    0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55,// 55
    0x00, 0x00, 0x41, 0x41, 0x7F, 0x00,// ]
    0x00, 0x04, 0x02, 0x01, 0x02, 0x04,// ^
    0x00, 0x40, 0x40, 0x40, 0x40, 0x40,// _
    0x00, 0x00, 0x01, 0x02, 0x04, 0x00,// '
    0x00, 0x20, 0x54, 0x54, 0x54, 0x78,// a
    0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,// b
    0x00, 0x38, 0x44, 0x44, 0x44, 0x20,// c
    0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,// d
    0x00, 0x38, 0x54, 0x54, 0x54, 0x18,// e
    0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,// f
    0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,// g
    0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,// h
    0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,// i
    0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,// j
    0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,// k
    0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,// l
    0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,// m
    0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,// n
    0x00, 0x38, 0x44, 0x44, 0x44, 0x38,// o
    0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,// p
    0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,// q
    0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,// r
    0x00, 0x48, 0x54, 0x54, 0x54, 0x20,// s
    0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,// t
    0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,// u
    0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,// v
    0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,// w
    0x00, 0x44, 0x28, 0x10, 0x28, 0x44,// x
    0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,// y
    0x00, 0x44, 0x64, 0x54, 0x4C, 0x44,// z
    0x14, 0x14, 0x14, 0x14, 0x14, 0x14,// horiz lines
};

//16*8 ASCII字符集點(diǎn)陣
const unsigned char F8X16[]=
{
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//sp /0
 0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//!  /1
 0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//"  /2
 0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//#  /3
 0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$  /4
 0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//%  /5
 0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//&  /6
 0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//'  /7
 0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//(  /8
 0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//)  /9
 0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//*  /10
 0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+  /11
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//,  /12
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//-  /13
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//.  /14
 0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,///  /15
 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0  /16
 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1  /17
 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2  /18
 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3  /19
 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//4  /20
 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//5  /21
 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//6  /22
 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//7  /23
 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//8  /24
 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//9  /25
 0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//:  /26
 0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,//;  /27
 0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,//<  /28
 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//=  /29
 0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,//>  /30
 0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//?  /31
 0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//@  /32
 0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A  /33
 0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B  /34
 0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C  /35
 0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D  /36
 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E  /37
 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F  /38
 0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G  /39
 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H  /40
 0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I  /41
 0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J  /42
 0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K  /43
 0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L  /44
 0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M  /45
 0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N  /46
 0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O  /47
 0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P  /48
 0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q  /49
 0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R  /50
 0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S  /51
 0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T  /52
 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U  /53
 0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V  /54
 0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W  /55
 0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X  /56
 0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y  /57
 0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z  /58
 0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[  /59
 0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\  /60
 0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//]  /61
 0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^  /62
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_  /63
 0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//`  /64
 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a  /65
 0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b  /66
 0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c  /67
 0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d  /68
 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e  /69
 0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f  /70
 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g  /71
 0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h  /72
 0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i  /73
 0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j  /74
 0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k  /75
 0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l  /76
 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m  /77
 0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n  /78
 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o  /79
 0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p  /80
 0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q  /81
 0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r  /82
 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s  /83
 0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t  /84
 0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//u  /85
 0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v  /86
 0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w  /87
 0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x  /88
 0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y  /89
 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z  /90
 0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{  /91
 0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//}  /92
 0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00};//|  /93

//部分漢字
const unsigned char Hzk[][32]=
{
      //年(0) 月(1) 日(2) 生(3) 態(tài)(4) 工(5) 作(6) 室(7) 

{0x00,0x20,0x18,0xC7,0x44,0x44,0x44,0x44,0xFC,0x44,0x44,0x44,0x44,0x04,0x00,0x00},
{0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00},/*"年",0*/

{0x00,0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0xFE,0x00,0x00,0x00},
{0x80,0x40,0x30,0x0F,0x02,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00},/*"月",1*/

{0x00,0x00,0x00,0xFE,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0xFE,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xFF,0x00,0x00,0x00,0x00},/*"日",2*/

{0x80,0x40,0x30,0x1E,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00},
{0x40,0x40,0x42,0x42,0x42,0x42,0x42,0x7F,0x42,0x42,0x42,0x42,0x42,0x40,0x40,0x00},/*"生",3*/

{0x00,0x04,0x84,0x84,0x44,0x24,0x54,0x8F,0x14,0x24,0x44,0x84,0x84,0x04,0x00,0x00},
{0x41,0x39,0x00,0x00,0x3C,0x40,0x40,0x42,0x4C,0x40,0x40,0x70,0x04,0x09,0x31,0x00},/*"態(tài)",4*/

{0x00,0x04,0x04,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00},
{0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00},/*"工",5*/

{0x00,0x80,0x60,0xF8,0x07,0x40,0x30,0x0F,0xF8,0x88,0x88,0x88,0x88,0x08,0x08,0x00},
{0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0xFF,0x08,0x08,0x08,0x08,0x08,0x00,0x00},/*"作",6*/

{0x10,0x0C,0x24,0x24,0xA4,0x64,0x25,0x26,0x24,0x24,0xA4,0x24,0x24,0x14,0x0C,0x00},
{0x40,0x40,0x48,0x49,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x4B,0x48,0x40,0x40,0x00},/*"室",7*/

};

#endif /* OLEDFONT_H_ */

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

    關(guān)注

    146

    文章

    17358

    瀏覽量

    352814
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9180

    瀏覽量

    369456
  • 嵌入式
    +關(guān)注

    關(guān)注

    5096

    文章

    19189

    瀏覽量

    308026
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5134

    瀏覽量

    98334
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RA2L1入門學(xué)習(xí)】2. PWM呼吸燈

    .燒錄程序: 3.實(shí)驗(yàn)圖片: 經(jīng)過(guò)這兩天的使用,發(fā)現(xiàn)e2studio中的stacks頁(yè)面還是挺好用的,可以拖拽函數(shù),編寫程序更加方便快捷。在stacks頁(yè)面還能看到用到了哪些堆棧,非常的贊。 本人第一次使用該開(kāi)發(fā)板,作為入門學(xué)習(xí),主要是體驗(yàn)一下
    發(fā)表于 01-30 21:55

    RA2L1入門學(xué)習(xí)】1. 點(diǎn)亮LED

    首次使用單片機(jī),先說(shuō)一下使用感受。 本次學(xué)習(xí)使用的是RA-Eco-RA2L1-48PIN-V1.0開(kāi)發(fā)板+e2studio(官方的集成開(kāi)發(fā)環(huán)境)+RAFP(官方的程序燒錄工具)。
    發(fā)表于 01-29 22:17

    RA2L1入門學(xué)習(xí)】開(kāi)箱+Keil環(huán)境搭建+點(diǎn)燈+點(diǎn)亮OLED

    );// 拉低 P104 在 main 函數(shù)調(diào)用的 hal_entry 函數(shù)里添加以上代碼即可 【點(diǎn)亮OLED顯示屏】 RA2L1 支持硬件 I
    發(fā)表于 01-25 12:10

    RA2L1入門學(xué)習(xí)】+ OLED驅(qū)動(dòng)

    【前言】 OLED是MCU比較常見(jiàn)的外設(shè)之一,MCU通過(guò)OLED可以展示用戶想要的東西。下面就如何在MAC OS下面使用e2Studio進(jìn)行項(xiàng)目開(kāi)發(fā)。 1、工程基礎(chǔ): https
    發(fā)表于 01-24 09:10

    RA2L1入門學(xué)習(xí)】+ MacOS安裝e2studio

    在win11下面可以有很多開(kāi)發(fā)方式,但是在macOS下面選擇開(kāi)發(fā)方式就是安裝e2studio for mac是比較好的方法。 1、下載安裝包: https://www.renesas.cn/zh
    發(fā)表于 01-22 19:00

    【RA-Eco-RA4E2-64PIN開(kāi)發(fā)板試用】I2C與I3C通信協(xié)議的應(yīng)用

    【RA-Eco-RA4E2-64PIN開(kāi)發(fā)板試用】I2C與I3C通信協(xié)議的應(yīng)用。 RA4E2開(kāi)發(fā)板集成32位的Arm Cortex-M3
    發(fā)表于 01-21 10:40

    【RA-Eco-RA4E2-64PIN-V1.0開(kāi)發(fā)板試用】開(kāi)箱+Keil環(huán)境搭建+點(diǎn)燈+點(diǎn)亮OLED

    KEYx1、USB轉(zhuǎn)串口x1、藍(lán)色LED燈x8 【開(kāi)發(fā)工具和環(huán)境】 支持 Keil、E2 Studio 開(kāi)發(fā)工具 使用 Keil 開(kāi)發(fā),建議安裝 RASC(RA Smart
    發(fā)表于 12-19 23:52

    FPB-RA6E2 評(píng)估板入門學(xué)習(xí)

    FPB-RA6E2 評(píng)估板入門學(xué)習(xí)
    的頭像 發(fā)表于 12-11 09:22 ?328次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b> FPB-RA6<b class='flag-5'>E2</b> 評(píng)估板入門學(xué)習(xí)

    【RA-Eco-RA2E1-48PIN-V1.0開(kāi)發(fā)板試用】IIC 通信的 OLED 顯示

    oled i2c , SSD1306 Datasheet . 工程建立 新建工程 **打開(kāi) e2 studio 軟件,依次點(diǎn)擊 **文件 - 新建 -
    發(fā)表于 11-07 02:30

    e2studio(1)----芯片之搭建FSP環(huán)境

    視頻教學(xué) 樣品申請(qǐng) 請(qǐng)勿添加外鏈 e2studio軟件 e2studio的集成開(kāi)發(fā)環(huán)境,F(xiàn)SP 提供了眾多可提高效率的工具,用于開(kāi)發(fā)針對(duì)
    發(fā)表于 09-30 15:28

    試用活動(dòng) | 100套!!RA6E2/RA4E2開(kāi)發(fā)板評(píng)測(cè)活動(dòng)

    活動(dòng)簡(jiǎn)介: RA6E2/RA4E2開(kāi)發(fā)板評(píng)測(cè)活動(dòng)是一個(gè)針對(duì)電子推出的通用微控制器(MCU
    的頭像 發(fā)表于 09-10 11:18 ?713次閱讀
    試用活動(dòng) | 100套!!<b class='flag-5'>瑞</b><b class='flag-5'>薩</b>RA6<b class='flag-5'>E2</b>/RA4<b class='flag-5'>E2</b>開(kāi)發(fā)板評(píng)測(cè)活動(dòng)

    e2studio----SPI速率解析

    在嵌入式系統(tǒng)的設(shè)計(jì)中,串行外設(shè)接口(SPI)的通信速率是一個(gè)關(guān)鍵參數(shù),它直接影響到系統(tǒng)的性能和穩(wěn)定性。電子的RA4M2微控制器為開(kāi)發(fā)者提供了靈活而強(qiáng)大的SPI配置選項(xiàng),確保可以根據(jù)不同的應(yīng)用場(chǎng)
    的頭像 發(fā)表于 08-08 17:00 ?1775次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>e2studio</b>----SPI速率解析

    如何使用e2studio對(duì)單片機(jī)進(jìn)行GPIO輸出

    本篇文章主要介紹如何使用e2studio對(duì)單片機(jī)進(jìn)行GPIO輸出,并以LED顯示。
    的頭像 發(fā)表于 07-30 16:12 ?745次閱讀
    如何使用<b class='flag-5'>e2studio</b>對(duì)<b class='flag-5'>瑞</b><b class='flag-5'>薩</b>單片機(jī)進(jìn)行GPIO輸出

    RA0E1開(kāi)發(fā)分享之一

    介紹生態(tài)社區(qū)的RA0E1開(kāi)發(fā)板。
    的頭像 發(fā)表于 05-10 13:57 ?1151次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>RA0<b class='flag-5'>E</b>1開(kāi)發(fā)分享之一

    SEGGER與電子合作,宣布集成開(kāi)發(fā)工具Embedded Studio

    SEGGER與Renesas Electronics(電子)合作,宣布集成開(kāi)發(fā)工具Embedded Studio現(xiàn)已集成到被稱為Smart Configurator(智能配置器)的Renesas代碼生成器中。
    的頭像 發(fā)表于 05-08 10:03 ?952次閱讀
    SEGGER與<b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子合作,宣布集成開(kāi)發(fā)工具Embedded <b class='flag-5'>Studio</b>
    主站蜘蛛池模板: 夜夜骑首页 | 涩涩涩综合在线亚洲第一 | 亚洲精品久久久久久久蜜桃 | 午夜三级a三点 | 天天干天天玩 | 久久综合九色欧美综合狠狠 | 国产精品久久久久网站 | 高清激情小视频在线观看 | 国产精品久久国产三级国不卡顿 | 国产午夜精品理论片 | 国产色妞妞在线观看 | 国产理论最新国产精品视频 | 女人被男人免费播放网站 | 亚洲午夜久久久精品影院视色 | 欧美成人午夜精品一区二区 | 欧美特黄视频在线观看 | 亚洲永久网站 | 一区二区三区在线看 | 视频一本大道香蕉久在线播放 | 亚欧美视频 | 能在线观看的一区二区三区 | 色爽女视频 | 久草亚洲视频 | 亚洲爱爱图 | 四虎永久在线精品2022 | a在线免费 | 在线观看视频你懂得 | 欧美极品 | 免费成人黄色网址 | 99久久综合给久久精品 | 国产98色在线| 免费视频网站在线看视频 | 国产欧美日韩va | 色婷婷一区 | 日本三人交xxx69视频 | 一级特黄aaa大片 | 年下系列高h文 | 久久久噜噜噜久久中文字幕色伊伊 | 美女用手扒开尿口给男生桶爽 | 国产激烈床戏无遮挡在线观看 | 国模啪啪一区二区三区 |