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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2428|回復: 0
收起左側

基于HC32V103開發板的OLED顯示驅動

[復制鏈接]
ID:776997 發表于 2020-10-27 00:17 | 顯示全部樓層 |閱讀模式
OLED屏是一種自身發光的顯示器件,它有許多種類,如按色彩分,可分為單色屏、雙色屏及彩色屏等;按尺寸分,可分為0.91'、0.96'屏等;按接口方式分,可分為I2C接口和SPI接口等。
其中,以I2C接口的OLED屏最有特點,它只用2I/O口就可完成顯示任務,且比數碼管所顯示的內容要豐富。
在掌握GPIO口使用的基礎上,就可十分輕松地實現驅動OLED屏顯示的目標。
在這里OLED屏與MCU的連接關系為:
SCL---PA2
SDA--- PA3
驅動OLED屏所定義的輸出高低電平的語句為:
#define SCL_high GPIO_WriteBit(GPIOA, GPIO_Pin_2, Bit_SET)
#define SCL_low  GPIO_WriteBit(GPIOA, GPIO_Pin_2, Bit_RESET)
#define SDA_high GPIO_WriteBit(GPIOA, GPIO_Pin_3, Bit_SET)
#define SDA_low  GPIO_WriteBit(GPIOA, GPIO_Pin_3, Bit_RESET)
配置2個引腳為輸出功能的函數為:
void OLED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;                  //定義一個GPIO_InitTypeDef類型的結構體
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//使能與LED相關的GPIO端口時鐘
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3; //配置GPIO引腳
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;      //設置GPIO模式為推挽輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     //設置GPIO口輸出速度
GPIO_Init(GPIOA,&GPIO_InitStructure);                  //調用庫函數,初始化GPIOA
GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_3);           //設置引腳輸出高電平
}
在參考廠家提供OLED屏驅動例程的情況下,可以快速地完成程序的移植。
輔助驅動的基本函數為:
void IIC_Start()
{
   SCL_high;
   SDA_high;
   SDA_low;
   SCL_low;
}
void IIC_Stop()
{
   SCL_low;
   SDA_low;
   SCL_high;
   SDA_high;
}
OLED屏的初始化函數為:
void Initial_M096128x64_ssd1306()
{
    Write_IIC_Command(0xAE);   //displayoff
    Write_IIC_Command(0x20);    //SetMemory Addressing Mode
    Write_IIC_Command(0x10);    //00,HorizontalAddressing Mode;01,Vertical Addressing Mode;10,Page Addressing Mode(RESET);11,Invalid
    Write_IIC_Command(0xb0);//Set Page Start Address for Page Addressing Mode,0-7
    Write_IIC_Command(0xc8);//Set COM Output Scan Direction
    Write_IIC_Command(0x00);//---set low column address
    Write_IIC_Command(0x10);//---set high column address
    Write_IIC_Command(0x40);//--set start line address
    Write_IIC_Command(0x81);//--set contrast control register
    Write_IIC_Command(0xdf);
    Write_IIC_Command(0xa1);//--set segment re-map 0 to 127
    Write_IIC_Command(0xa6);//--set normal display
    Write_IIC_Command(0xa8);//--set multiplex ratio(1 to 64)
    Write_IIC_Command(0x3F);//
    Write_IIC_Command(0xa4);//0xa4,Output follows RAM content;0xa5,Output ignores RAMcontent
    Write_IIC_Command(0xd3);//-set display offset
    Write_IIC_Command(0x00);//-not offset
    Write_IIC_Command(0xd5);//--set display clock divide ratio/oscillator frequency
    Write_IIC_Command(0xf0);//--set divide ratio
    Write_IIC_Command(0xd9);//--set pre-charge period
    Write_IIC_Command(0x22); //
    Write_IIC_Command(0xda);//--set com pins hardware configuration
    Write_IIC_Command(0x12);
    Write_IIC_Command(0xdb);//--set vcomh
    Write_IIC_Command(0x20);//0x20,0.77xVcc
    Write_IIC_Command(0x8d);//--set DC-DC enable
    Write_IIC_Command(0x14);//
    Write_IIC_Command(0xaf);//--turn on oled panel
}
顯示圖片的函數為:
void Picture()
{
  unsigned char x,y;
  unsigned int i=0;
  for(y=0;y<8;y++)
  {
      Write_IIC_Command(0xb0+y);
      Write_IIC_Command(0x0);
      Write_IIC_Command(0x10);
      for(x=0;x<132;x++)
      {
          Write_IIC_Data(show[i++]);
      }
  }
}
經程序編譯,其結果如圖1所示。
1.jpg
1 完成編譯
在通過編譯后,使用下載工具即可完成下載,其界面如圖2所示。
2.jpg
2 完成下載
在完成下載,程序的運行效果如圖3所示。
3.jpg
3 運行效果

評分

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

查看全部評分

回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲性视频| 伊人啪啪网 | 毛片免费观看 | 蜜臀网 | 亚洲精品99999 | 亚洲高清一区二区三区 | 成人黄色网址大全 | 国产成人精品一区二三区在线观看 | 91n成人| 九九热国产视频 | www.成人.com| 亚洲日本乱码在线观看 | 国产精品成人久久久久 | 免费av播放 | 亚洲精品www久久久久久广东 | 欧美日批| 91av大全 | 欧美视频在线观看 | 国产精品夜夜夜一区二区三区尤 | 日本免费黄色 | 久久久久高清 | 欧美日韩一二区 | 盗摄精品av一区二区三区 | 操操操av | 一级特黄视频 | 精品久久国产 | 亚洲精品一区二区在线 | 亚洲国产精品久久 | 午夜激情影院 | 成人做爰www免费看视频网站 | www免费视频| 国产欧美一区二区三区日本久久久 | 成人九色 | 粉嫩av久久一区二区三区 | 99久久婷婷国产综合精品首页 | 久久精品久久综合 | 亚洲国产精品久久人人爱 | 亚洲精品日本 | 午夜欧美 | 国产精品一区二区久久精品爱微奶 | 精品乱码一区二区三四区 |