標(biāo)題: 基于HC32V103開發(fā)板的OLED顯示驅(qū)動(dòng) [打印本頁(yè)]
作者: jinglixixi 時(shí)間: 2020-10-27 00:17
標(biāo)題: 基于HC32V103開發(fā)板的OLED顯示驅(qū)動(dòng)
OLED屏是一種自身發(fā)光的顯示器件,它有許多種類,如按色彩分,可分為單色屏、雙色屏及彩色屏等;按尺寸分,可分為0.91'、0.96'屏等;按接口方式分,可分為I2C接口和SPI接口等。
其中,以I2C接口的OLED屏最有特點(diǎn),它只用2個(gè)I/O口就可完成顯示任務(wù),且比數(shù)碼管所顯示的內(nèi)容要豐富。
在掌握GPIO口使用的基礎(chǔ)上,就可十分輕松地實(shí)現(xiàn)驅(qū)動(dòng)OLED屏顯示的目標(biāo)。
在這里OLED屏與MCU的連接關(guān)系為:
SCL---PA2
SDA--- PA3
驅(qū)動(dòng)OLED屏所定義的輸出高低電平的語(yǔ)句為:
#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個(gè)引腳為輸出功能的函數(shù)為:
void OLED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //定義一個(gè)GPIO_InitTypeDef類型的結(jié)構(gòu)體
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//使能與LED相關(guān)的GPIO端口時(shí)鐘
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3; //配置GPIO引腳
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //設(shè)置GPIO模式為推挽輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //設(shè)置GPIO口輸出速度
GPIO_Init(GPIOA,&GPIO_InitStructure); //調(diào)用庫(kù)函數(shù),初始化GPIOA
GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_3); //設(shè)置引腳輸出高電平
}
在參考廠家提供OLED屏驅(qū)動(dòng)例程的情況下,可以快速地完成程序的移植。
輔助驅(qū)動(dòng)的基本函數(shù)為:
void IIC_Start()
{
SCL_high;
SDA_high;
SDA_low;
SCL_low;
}
void IIC_Stop()
{
SCL_low;
SDA_low;
SCL_high;
SDA_high;
}
OLED屏的初始化函數(shù)為:
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
}
顯示圖片的函數(shù)為:
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++]);
}
}
}
經(jīng)程序編譯,其結(jié)果如圖1所示。
1.jpg (231.39 KB, 下載次數(shù): 53)
下載附件
2020-10-27 00:17 上傳
圖1 完成編譯
在通過(guò)編譯后,使用下載工具即可完成下載,其界面如圖2所示。
2.jpg (208.4 KB, 下載次數(shù): 70)
下載附件
2020-10-27 00:17 上傳
圖2 完成下載
在完成下載,程序的運(yùn)行效果如圖3所示。
3.jpg (113.71 KB, 下載次數(shù): 73)
下載附件
2020-10-27 00:17 上傳
圖3 運(yùn)行效果
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
国产乱码精品一区二区三区中文
|
中文字幕一区二区三区日韩精品
|
国产视频欧美
|
日韩欧美一区二区三区四区
|
一区二区三区在线
|
国产精品一区在线
|
国产精品日韩欧美一区二区三区
|
日韩精品1区2区3区
爱爱综合网
|
久久精品97
|
亚洲免费视频网址
|
午夜看片网站
|
高清av电影
|
波多野结衣av中文字幕
|
久久手机在线视频
|
久久久精彩视频
|
色噜噜亚洲男人的天堂
|
久久激情网
|
六月色婷
|
日本在线中文
|
天天干天天插天天
|
日韩av在线一区
|
精品入口麻豆88视频
|
日韩一区精品
|
日本国产一区二区
|
四虎影
|
欧美一区二区三区国产精品
|
成人精品系列
|
成人激情视频在线播放
|
日韩精品一区二区三区久久
|
国产成人免费视频网站高清观看视频
|
日韩一区二区三区四区五区
|
在线播放中文字幕
|
亚洲成人精品在线观看
|
精品日韩一区二区三区
|
男女羞羞视频大全
|
国产在线观看av
|
久久性av
|
欧美一级在线观看
|
爱爱视频网
|
自拍偷拍中文字幕
|
国产一区二区三区高清
|