資源簡介
基于IIC的OLED驅(qū)動程序
代碼片段和文件信息
/*************************************************************************************
*
*?1.?void?delay(unsigned?int?z)?--?延時(shí)函數(shù)毫秒
*?2.?void?IIC_Start()?--?開啟I2C總線
*?3.?void?IIC_Stop()?--?關(guān)閉I2C總線
*?4.?void?Write_IIC_Byte(unsigned?char?IIC_Byte)?--?通過I2C總線寫一個(gè)byte的數(shù)據(jù)
*?5.?void?OLED_WrDat(unsigned?char?dat)?--?向OLED屏寫數(shù)據(jù)
*?6.?void?OLED_WrCmd(unsigned?char?cmd)?--?向OLED屏寫命令
*?7.?void?OLED_Set_Pos(unsigned?char?x?unsigned?char?y)?--?設(shè)置顯示坐標(biāo)
*?8.?void?OLED_Fill(unsigned?char?bmp_dat)?--?全屏顯示(顯示BMP圖片時(shí)才會用到此功能)
*?9.?void?OLED_CLS(void)?--?復(fù)位/清屏
*?10.?void?OLED_Init(void)?--?OLED屏初始化程序,此函數(shù)應(yīng)在操作屏幕之前最先調(diào)用
*?11.?void?OLED_P6x8Str(unsigned?char?x?yunsigned?char?ch[])?--?6x8點(diǎn)整,用于顯示ASCII碼的最小陣列,不太清晰
*?12.?void?OLED_P8x16Str(unsigned?char?x?yunsigned?char?ch[])?--?8x16點(diǎn)整,用于顯示ASCII碼,非常清晰
*?13.void?OLED_P16x16Ch(unsigned?char?x?y?N)?--?16x16點(diǎn)整,用于顯示漢字的最小陣列,可設(shè)置各種字體、加粗、傾斜、下劃線等
*?14.void?Draw_BMP(unsigned?char?x0?y0x1?y1unsigned?char?BMP[])?--?將128x64像素的BMP位圖在取字軟件中算出字表,然后復(fù)制到codetab中,此函數(shù)調(diào)用即可
*
*?History:?none;
*
*************************************************************************************/
#include?“oled.h“
#include?“codetab.h“
//#include?“delay.h“
//?------------------------------------------------------------
//?SCL接PB3
//?SDA接PB4
//?------------------------------------------------------------
void?IIC_Init(void)
{
/* GPIO_InitTypeDef?GPIO_InitStructure;
??RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB?ENABLE);?//使能PB端口時(shí)鐘
??GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_3|GPIO_Pin_4; //端口配置
??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_Out_PP;??????//推挽輸出
GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;?????//50M
??GPIO_Init(GPIOB?&GPIO_InitStructure);
*/
}
/**************************實(shí)現(xiàn)函數(shù)********************************************
*函數(shù)原型: void?IIC_Start(void)
*功 能: 產(chǎn)生IIC起始信號
*******************************************************************************/
void?OLED_IIC_Start(void)
{
???SCL_H;
???SDA_H;
???SDA_L;
???SCL_L;
}
/**************************實(shí)現(xiàn)函數(shù)********************************************
*函數(shù)原型: void?IIC_Stop(void)
*功 能: ????//產(chǎn)生IIC停止信號
*******************************************************************************/ ??
void??OLED_IIC_Stop(void)
{
???SCL_L;
???SDA_L;
???SCL_H;
???SDA_H; ???
}
void?Write_IIC_Byte(unsigned?char?IIC_Byte)
{
unsigned?char?i;
for(i=0;i<8;i++)
{
if(IIC_Byte?&?0x80)
SDA_H;
else
SDA_L;
SCL_H;
SCL_L;
IIC_Byte<<=1;
}
SDA_H;
SCL_H;
SCL_L;
}
/*********************OLED寫數(shù)據(jù)************************************/?
void?OLED_WrDat(unsigned?char?IIC_Data)
{
OLED_IIC_Start();
Write_IIC_Byte(0x78);
Write_IIC_Byte(0x40); //write?data
Write_IIC_Byte(IIC_Data);
OLED_IIC_Stop();
}
/*********************OLED寫命令************************************/
void?OLED_WrCmd(unsigned?char?IIC_Command)
{
OLED_IIC_Start();
Write_IIC_Byte(0x78);????????????//Slave?addressSA0=0
Write_IIC_Byte(0x00); /
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????10767??2018-04-16?11:50??OLED\bmp1.h
?????文件???????49241??2018-04-22?13:44??OLED\codetab.h
?????文件???????15100??2020-11-27?10:30??OLED\oled.c
?????文件????????2236??2020-11-27?09:37??OLED\oled.h
?????目錄???????????0??2020-12-04?15:46??OLED\
評論
共有 條評論