久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6373|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

基于STM32F4系列單片機(jī)的OLED驅(qū)動程序源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
自己在驅(qū)動oled的時候找了很多資料,看了很多示例代碼。總覺得那些代碼兼容性很好,但是作為單片機(jī)初學(xué)者來說
過于冗雜。所以自己整理了一下。加上了一點(diǎn)自己想法,寫了這個精簡版得oled驅(qū)動程序。

實(shí)物圖如下:


單片機(jī)源程序如下:
  1. /*
  2.         STM32F429               
  3.         這個是基于9.6 oled的驅(qū)動程序
  4.         僅供學(xué)習(xí)參考,代碼較為簡單,未進(jìn)行注釋
  5.         交流聯(lián)系方式 1452912499@qq.com
  6. #       
  7. */

  8. #include "bsp_SPI.h"

  9. uint32_t time;
  10. uint8_t OLED_GRAM[8][128];

  11. extern uint8_t font[94][16];

  12. void SPI_Config(void)
  13. {
  14.         GPIO_InitTypeDef GP;
  15.        
  16.         RCC_AHB1PeriphClockCmd(SPI_NSS_CLK|SPI_SCK_CLK|SPI_MOSI_CLK|SPI_DC_CLK|SPI_REST_CLK,ENABLE);
  17.        
  18.        
  19.         GP.GPIO_Mode =GPIO_Mode_OUT;
  20.         GP.GPIO_OType = GPIO_OType_PP;
  21.         GP.GPIO_PuPd = GPIO_PuPd_UP;
  22.         GP.GPIO_Speed = GPIO_Speed_50MHz;
  23.        
  24.        
  25.         GP.GPIO_Pin = SPI_NSS_Pin;
  26.         GPIO_Init(SPI_NSS_Port,&GP);

  27.        
  28.         GP.GPIO_Pin = SPI_REST_Pin;
  29.         GPIO_Init(SPI_REST_Port,&GP);

  30.        
  31.         GP.GPIO_Pin = SPI_DC_Pin;
  32.         GPIO_Init(SPI_DC_Port,&GP);

  33.        
  34.         GP.GPIO_Pin = SPI_SCK_Pin;
  35.         GPIO_Init(SPI_SCK_Port,&GP);

  36.        
  37.         GP.GPIO_Pin = SPI_MOSI_Pin;
  38.         GPIO_Init(SPI_MOSI_Port,&GP);
  39.        
  40.         DC_HIGH
  41.         CS_HIGH
  42.         DATA_HIGH
  43.         CLK_HIGH
  44.        
  45. }


  46. void OLED_Config(void)
  47. {
  48.        

  49.        
  50.         SysTick_Init();

  51.         Rest_HIGH
  52.         Delay_us(10000);
  53.         Rest_LOW//初始化
  54.         Delay_us(10000);
  55.         Rest_HIGH
  56.        
  57.   Write(0xAE,CMD);//--turn off oled panel
  58.         Write(0x00,CMD);//---set low column address
  59.         Write(0x10,CMD);//---set high column address
  60.         Write(0x40,CMD);//--set start line address  Set Mapping RAM Display Start Line (0x00~0x3F)
  61.         Write(0x81,CMD);//--set contrast control register
  62.         Write(0xCF,CMD); // Set SEG Output Current Brightness
  63.         Write(0xA1,CMD);//--Set SEG/Column Mapping     0xa0左右反置 0xa1正常
  64.         Write(0xC8,CMD);//Set COM/Row Scan Direction   0xc0上下反置 0xc8正常
  65.         Write(0xA6,CMD);//--set normal display
  66.         Write(0xA8,CMD);//--set multiplex ratio(1 to 64)
  67.         Write(0x3f,CMD);//--1/64 duty
  68.         Write(0xD3,CMD);//-set display offset        Shift Mapping RAM Counter (0x00~0x3F)
  69.         Write(0x00,CMD);//-not offset
  70.         Write(0xd5,CMD);//--set display clock divide ratio/oscillator frequency
  71.         Write(0x80,CMD);//--set divide ratio, Set Clock as 100 Frames/Sec
  72.         Write(0xD9,CMD);//--set pre-charge period
  73.         Write(0xF1,CMD);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
  74.         Write(0xDA,CMD);//--set com pins hardware configuration
  75.         Write(0x12,CMD);
  76.         Write(0xDB,CMD);//--set vcomh
  77.         Write(0x40,CMD);//Set VCOM Deselect Level
  78.         Write(0x20,CMD);//-Set Page Addressing Mode (0x00/0x01/0x02)
  79.         Write(0x02,CMD);//
  80.         Write(0x8D,CMD);//--set Charge Pump enable/disable
  81.         Write(0x14,CMD);//--set(0x10) disable
  82.         Write(0xA4,CMD);// Disable Entire Display On (0xa4/0xa5)
  83.         Write(0xA6,CMD);// Disable Inverse Display On (0xa6/a7)
  84.         Write(0xAF,CMD);//--turn on oled panel
  85.        
  86.         OLED_Clear();
  87. }

  88. void Updata(void)
  89. {
  90.        
  91.        
  92.         uint8_t i,n;
  93.   for(i=0;i<8;i++)
  94.   {
  95.         Write(0xb0+i,CMD);
  96.         Write(0x00,CMD);
  97.         Write(0x10,CMD);
  98.         for(n=0;n<128;n++){Write(OLED_GRAM[i][n],DATA);}
  99.   }
  100. }


  101. void Write(uint8_t data,uint8_t x)
  102. {
  103.         uint8_t i;
  104.         if(x)
  105.         {
  106.                 DC_HIGH
  107.         }
  108.         else
  109.         {
  110.                 DC_LOW
  111.         }
  112.         CS_LOW
  113. for(i=0;i<8;i++)
  114.         {
  115.                 CLK_LOW
  116.                 if(data&0x80)
  117.                         DATA_HIGH
  118.                 else
  119.                         DATA_LOW
  120.                 CLK_HIGH
  121.                 data<<=1;  
  122.         }
  123.         CS_HIGH
  124.         DC_HIGH
  125. }

  126. void OLED_Clear(void)
  127. {
  128.        
  129.         uint8_t i,n;       
  130.   for(i=0;i<8;i++)
  131.   {
  132.         Write(0xb0+i,CMD);
  133.         Write(0x00,CMD);
  134.         Write(0x10,CMD);
  135.         for(n=0;n<128;n++)Write(0x00,DATA);
  136.   }
  137.        

  138. }


  139. void ConPart(uint8_t x,uint8_t y,uint8_t *map)
  140. {
  141.         uint8_t y2;
  142.         for(y2 =0;y2<8&&y2+y<128;y2++)
  143.         {
  144.                                 OLED_GRAM[x][y2+y] = *(map+y2);
  145.         }
  146. ……………………

  147. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
OLED-429模擬SPI.rar (4.2 MB, 下載次數(shù): 113)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:517861 發(fā)表于 2019-8-28 11:16 | 只看該作者
看起來很厲害的樣子
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 我想看一级黄色毛片 | 中文字幕 国产精品 | 国产精品免费视频一区 | 亚洲一区在线播放 | 国产美女视频 | 国产成人在线一区二区 | 九九色综合 | 亚洲国产一区二区三区在线观看 | 国产成人精品免费视频大全最热 | 免费日韩网站 | 91在线视频免费观看 | 欧美久久精品一级c片 | 高清不卡毛片 | 国产激情91久久精品导航 | 一区精品在线观看 | 午夜精品久久久久久久星辰影院 | 日韩色综合 | 亚洲精品免费观看 | 午夜视频精品 | 午夜精品久久久久久久久久久久久 | 国产精品日韩欧美一区二区三区 | 久久久婷婷 | 精品国产欧美一区二区三区不卡 | 中文字幕第一页在线 | 欧美在线天堂 | 久久新视频 | 狠狠操av| 免费看大片bbbb欧美 | 成人精品视频99在线观看免费 | av电影一区二区 | 亚洲精品www久久久久久广东 | 涩色视频在线观看 | 精品综合久久 | 91电影在线播放 | 一区二区高清 | 狠狠色综合久久丁香婷婷 | 蜜桃在线播放 | 中文字幕欧美日韩 | 久久99精品视频 | 国产精品99久久久久久动医院 | 毛片高清 |