娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

GD32F303固件庫開發(14)----IIC之配置OLED

發布者:DreamySunset最新更新時間:2024-11-14 來源: elecfans關鍵字:GD32F303  固件庫開發  IIC 手機看文章 掃描二維碼
隨時隨地手機看文章

    {

        OLED_WR_Byte(0xb0+m,0);        //page0-page1

        OLED_WR_Byte(0x00,0);        //low column start address

        OLED_WR_Byte(0x10,0);        //high column start address

        for(n=0;n< 128;n++)

            {

                OLED_WR_Byte(fill_Data,1);

            }

    }

}



/***********************Delay****************************************/

void Delay_50ms(unsigned int Del_50ms)

{

    unsigned int m;

    for(;Del_50ms >0;Del_50ms--)

        for(m=6245;m >0;m--);

}


void Delay_1ms(unsigned int Del_1ms)

{

    unsigned char j;

    while(Del_1ms--)

    {    

        for(j=0;j< 123;j++);

    }

}


//坐標設置


    void OLED_Set_Pos(unsigned char x, unsigned char y) 

{     OLED_WR_Byte(0xb0+y,OLED_CMD);

    OLED_WR_Byte(((x&0xf0) >>4)|0x10,OLED_CMD);

    OLED_WR_Byte((x&0x0f),OLED_CMD); 

}         

//開啟OLED顯示    

void OLED_Display_On(void)

{

    OLED_WR_Byte(0X8D,OLED_CMD);  //SET DCDC命令

    OLED_WR_Byte(0X14,OLED_CMD);  //DCDC ON

    OLED_WR_Byte(0XAF,OLED_CMD);  //DISPLAY ON

}

//關閉OLED顯示     

void OLED_Display_Off(void)

{

    OLED_WR_Byte(0X8D,OLED_CMD);  //SET DCDC命令

    OLED_WR_Byte(0X10,OLED_CMD);  //DCDC OFF

    OLED_WR_Byte(0XAE,OLED_CMD);  //DISPLAY OFF

}                        

//清屏函數,清完屏,整個屏幕是黑色的!和沒點亮一樣!!!      

void OLED_Clear(void)  

{  

    u8 i,n;            

    for(i=0;i< 8;i++)  

    {  

        OLED_WR_Byte (0xb0+i,OLED_CMD);    //設置頁地址(0~7)

        OLED_WR_Byte (0x00,OLED_CMD);      //設置顯示位置—列低地址

        OLED_WR_Byte (0x10,OLED_CMD);      //設置顯示位置—列高地址   

        for(n=0;n< 128;n++)OLED_WR_Byte(0,OLED_DATA); 

    } //更新顯示

}

void OLED_On(void)  

{  

    u8 i,n;            

    for(i=0;i< 8;i++)  

    {  

        OLED_WR_Byte (0xb0+i,OLED_CMD);    //設置頁地址(0~7)

        OLED_WR_Byte (0x00,OLED_CMD);      //設置顯示位置—列低地址

        OLED_WR_Byte (0x10,OLED_CMD);      //設置顯示位置—列高地址   

        for(n=0;n< 128;n++)OLED_WR_Byte(1,OLED_DATA); 

    } //更新顯示

}

//在指定位置顯示一個字符,包括部分字符

//x:0~127

//y:0~63

//mode:0,反白顯示;1,正常顯示                 

//size:選擇字體 16/12 

void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 Char_Size)

{          

    unsigned char c=0,i=0;    

        c=chr-' ';//得到偏移后的值            

        if(x >Max_Column-1){x=0;y=y+2;}

        if(Char_Size ==16)

            {

            OLED_Set_Pos(x,y);    

            for(i=0;i< 8;i++)

            OLED_WR_Byte(F8X16[c*16+i],OLED_DATA);

            OLED_Set_Pos(x,y+1);

            for(i=0;i< 8;i++)

            OLED_WR_Byte(F8X16[c*16+i+8],OLED_DATA);

            }

            else {    

                OLED_Set_Pos(x,y);

                for(i=0;i< 6;i++)

                OLED_WR_Byte(F6x8[c][i],OLED_DATA);


            }

}

//m^n函數

u32 oled_pow(u8 m,u8 n)

{

    u32 result=1;     

    while(n--)result*=m;    

    return result;

}                  

//顯示2個數字

//x,y :起點坐標     

//len :數字的位數

//size:字體大小

//mode:模式    0,填充模式;1,疊加模式

//num:數值(0~4294967295);               

void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size2)

{             

    u8 t,temp;

    u8 enshow=0;                           

    for(t=0;t< len;t++)

    {

        temp=(num/oled_pow(10,len-t-1))%10;

        if(enshow==0&&t< (len-1))

        {

            if(temp==0)

            {

                OLED_ShowChar(x+(size2/2)*t,y,' ',size2);

                continue;

            }else enshow=1; 


        }

         OLED_ShowChar(x+(size2/2)*t,y,temp+'0',size2); 

    }

//顯示一個字符號串

void OLED_ShowString(u8 x,u8 y,u8 *chr,u8 Char_Size)

{

    unsigned char j=0;

    while (chr[j]!='?')

    {        OLED_ShowChar(x,y,chr[j],Char_Size);

            x+=8;

        if(x >120){x=0;y+=2;}

            j++;

    }

}

//顯示漢字

void OLED_ShowCHinese(u8 x,u8 y,u8 no)

{                      

    u8 t,adder=0;

    OLED_Set_Pos(x,y);    

    for(t=0;t< 16;t++)

        {

                OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);

                adder+=1;

     }    

        OLED_Set_Pos(x,y+1);    

    for(t=0;t< 16;t++)

            {    

                OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA);

                adder+=1;

      }                    

}

/***********功能描述:顯示顯示BMP圖片128×64起始點坐標(x,y),x的范圍0~127,y為頁的范圍0~7*****************/

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< y1;y++)

    {

        OLED_Set_Pos(x0,y);

    for(x=x0;x< x1;x++)

        {      

            OLED_WR_Byte(BMP[j++],OLED_DATA);            

        }

    }


//初始化SSD1306                        

void OLED_Init(void)

{     


//     GPIO_InitTypeDef  GPIO_InitStructure;

//     


//    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);     //使能A端口時鐘

//    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_7;     

//     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;          //推挽輸出

//    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度50MHz

//     GPIO_Init(GPIOA, &GPIO_InitStructure);      //初始化GPIOD3,6

//     GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_7);    


//delay_ms(800);

delay_1ms(800);


OLED_WR_Byte(0xAE,OLED_CMD);//--display off

    OLED_WR_Byte(0x00,OLED_CMD);//---set low column address

    OLED_WR_Byte(0x10,OLED_CMD);//---set high column address

    OLED_WR_Byte(0x40,OLED_CMD);//--set start line address  

    OLED_WR_Byte(0xB0,OLED_CMD);//--set page address

    OLED_WR_Byte(0x81,OLED_CMD); // contract control

    OLED_WR_Byte(0xFF,OLED_CMD);//--128   

    OLED_WR_Byte(0xA1,OLED_CMD);//set segment remap 

    OLED_WR_Byte(0xA6,OLED_CMD);//--normal / reverse

    OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)

    OLED_WR_Byte(0x3F,OLED_CMD);//--1/32 duty

    OLED_WR_Byte(0xC8,OLED_CMD);//Com scan direction

    OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset

    OLED_WR_Byte(0x00,OLED_CMD);//


    OLED_WR_Byte(0xD5,OLED_CMD);//set osc division

    OLED_WR_Byte(0x80,OLED_CMD);//


    OLED_WR_Byte(0xD8,OLED_CMD);//set area color mode off

    OLED_WR_Byte(0x05,OLED_CMD);//


    OLED_WR_Byte(0xD9,OLED_CMD);//Set Pre-Charge Period

    OLED_WR_Byte(0xF1,OLED_CMD);//


    OLED_WR_Byte(0xDA,OLED_CMD);//set com pin configuartion

    OLED_WR_Byte(0x12,OLED_CMD);//


    OLED_WR_Byte(0xDB,OLED_CMD);//set Vcomh

    OLED_WR_Byte(0x30,OLED_CMD);//


    OLED_WR_Byte(0x8D,OLED_CMD);//set charge pump enable

    OLED_WR_Byte(0x14,OLED_CMD);//

[1] [2] [3] [4] [5]
關鍵字:GD32F303  固件庫開發  IIC 引用地址:GD32F303固件庫開發(14)----IIC之配置OLED

上一篇:GD32F303固件庫開發(15)----外部中斷EXTI
下一篇:RT-Thread開發GD32F450添加spiflash外設的步驟

推薦閱讀最新更新時間:2025-05-17 00:39

STM32紅牛開發板非固件庫控制LED
摘要 STM32紅牛開發板上的5個LED,接在GPIOF6~10腳,輸出低電平時,LED亮。這樣我們設置GPIOF的相關寄存器,讓其輸出低電平就可以讓LED亮。因為沒有用到ST提供的固件庫,所以是直接對寄存器的內存地址讀寫,即對一個指向該地址的指針變量進行讀寫。并且該變量必須為易變型的,即用volatile定義,這樣是為了告訴編譯器不要去優化這個變量,導致其它一些寄存器的數據變化。GPIOx是掛載在APB2高速外設總線上的,最大頻率是72MHZ,所以我們除了了打開HSE(外部高速時鐘)并關閉內部高速時鐘(開機默認選擇了HSI)外,還要打開APB2總線的時鐘。 一、寄存器地址映射 外設的基址PERI
[單片機]
愛芯元智榮獲IIC“年度新銳初創IC設計公司”獎,并入選TOP10 AI芯片公司
愛芯元智榮獲IIC“年度新銳初創IC設計公司”獎,并入選TOP10 AI芯片公司 中國 上海 2021年8月18日——昨日, 2022中國IC領袖峰會暨中國IC設計成就獎頒獎典禮成功舉辦,人工智能視覺芯片研發及基礎算力平臺公司“愛芯元智”出席峰會 。會上,圍繞“20年,砥礪前行”峰會主題,半導體業界專家和企業領袖、中國電子和IC設計行業資深工程師、技術和供應鏈專業人士,以及企業高管們共同回顧了中國半導體產業20 年來的發展歷程,并一齊探討中國半導體下一個十年的發展之路。 愛芯元智憑借在AI視覺芯片賽道的強大自研實力和突出落地成果,榮獲“2022中國IC設計成就獎之年度新銳初創IC設計公司”獎。 由AspenCor
[嵌入式]
愛芯元智榮獲<font color='red'>IIC</font>“年度新銳初創IC設計公司”獎,并入選TOP10 AI芯片公司
MSP430F5529LP(一)IICOLED的HELLOWRLD
簡單理解下什么是IIC I2C(Inter-Integrated Circuit BUS) 集成電路總線,該總線由NXP(原PHILIPS)公司設計,多用于主控制器和從器件間的主從通信,在小數據量場合使用,傳輸距離短,任意時刻只能有一個主機等特性。 總線信號 :   SDA :串行數據線   SCL :串行時鐘 總線空閑狀態 :   SDA :高電平   SCL :高電平 起始位:SCL為高電平期間 SDA出現下降沿 終止位:SCL為高電平期間 SDA出現上升沿 數據傳輸 :SDA的數據在SCL高電平期間被寫入從機。所以SDA的數據變化要發生在SCL低電平期間。 先簡單寫出IIC.h頭文件
[單片機]
MSP430F5529LP(一)<font color='red'>IIC</font>與<font color='red'>OLED</font>的HELLOWRLD
新唐M051 IIC使用程序
發一個新唐M051單片機的 IIC使用的程序: #include "SmartM_M0.h" #define DEBUGMSG printf #define EEPROM_SLA 0xA0 #define EEPROM_WR 0x00 #define EEPROM_RD 0x01 #define I2C_CLOCK 13 #define PAGE_SIZE 8 /***************************************** *函數名稱:Timed_Write_Cycle *輸 入:無 *輸 出:無 *功 能:同步的寫周期 *
[單片機]
IIC-Taiwan/半導體商從基礎技術談節能設計
  “除了100%符合歐盟對鉛、汞、鎘等物質禁用指令外,我們2008年還要進一步達到無鹵、無氧化銻的‘Dark Green’目標,” 恩智浦(NXP)多重市場半導體大中華區市場資深行銷總監梅潤平日前在2008年國際積體電路研討會暨展覽會(IIC-Taiwan)上,針對半導體產業朝向輕凈科技的發展做出了以上表示。   從制造到一項產品的生命終止,其中充滿了許多可以努力,使該產品更環保的空間,梅潤平強調,許多終端產品是可以更綠色、對環境更友善的。   例如,LED在許多領域都可實現更節能的設計,包括照明、背光等。“我們正在與多家LCD TV制造商以及LED供應商合作,開發一種‘side LED’的新應用,”梅潤平說。他解釋道,該技
[焦點新聞]
基于IIC1.0的時鐘芯片應用程序設計
摘要:在對串行實時時鐘芯片X1203內部結構和工作特性作基本介紹的基礎上,設計出用單片機的通用I/O口線虛擬I2C總線來實現與時鐘芯片的串行接口電路以及利用虛擬I2C總線軟件包VIIC設計時鐘芯片1203的應用程序。 關鍵詞:單片機 實時時鐘 虛擬I2C總線 實時時鐘是微機測控系統中的一個重要組成部分。美國Xicor公司推出的串行接口實時時鐘芯片X1203提供備用電源輸入引腳,使器件能用非可重新充電電池任務用電源。該芯片以其體積小、功耗低、使用簡單、接口容易、與單片機連線少為主要特點,同時具有較高的精度,能很好滿足微機測控系統的求。下面具體介紹該芯片的內部結構、工作特性、與51系列單片機接口設計實例以及如何利用虛擬I2C總線軟件包
[應用]
Windows Embedded力拓培訓和認證計劃
2月26日,在第14屆中國國際集成電路研討會暨展覽會(IIC-China)上,微軟公司宣布將擴大其Windows Embedded產品系列的培訓課件和認證計劃。除了公布其最新的培訓和認證計劃外,微軟Windows Embedded還在展會現場展示其產品系列,包括最新發布的Windows Embedded POSReady 2009產品——針對提供 POS 解決方案的原始設備制造商(OEM)和使用 POS 設備的企業,進行特別優化的嵌入式操作系統。 據IDC中國2009年1月7日的報告預測,雖然遭受全球經濟危機,中國IT市場預計仍將以高于其他國家的比率增長。“由于中國政府的4萬億元人民幣的投資,發展中國的通信、醫療、汽
[嵌入式]
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 巴林右旗| 嵊泗县| 鄂伦春自治旗| 南投市| 改则县| 怀远县| 盐亭县| 苍南县| 城市| 洛南县| 中西区| 彩票| 沧源| 庄河市| 肥城市| 什邡市| 于都县| 宁陵县| 荆州市| 阜新市| 广饶县| 阳信县| 平乡县| 仙游县| 永顺县| 南阳市| 抚州市| 朝阳市| 丘北县| 偃师市| 宁波市| 肃南| 澄迈县| 昌乐县| 盐山县| 尼木县| 宁乡县| 连云港市| 海门市| 高阳县| 苍梧县|