• 大小: 0.01M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2024-04-20
  • 语言: C/C++
  • 标签: OLED  LED  驱动  

资源简介

基于IIC的OLED驱动程序

资源截图

代码片段和文件信息

/*************************************************************************************
*
* 1. void delay(unsigned int z) -- 延时函数毫秒
* 2. void IIC_Start() -- 开启I2C总线
* 3. void IIC_Stop() -- 关闭I2C总线
* 4. void Write_IIC_Byte(unsigned char IIC_Byte) -- 通过I2C总线写一个byte的数据
* 5. void OLED_WrDat(unsigned char dat) -- 向OLED屏写数据
* 6. void OLED_WrCmd(unsigned char cmd) -- 向OLED屏写命令
* 7. void OLED_Set_Pos(unsigned char x unsigned char y) -- 设置显示坐标
* 8. void OLED_Fill(unsigned char bmp_dat) -- 全屏显示(显示BMP图片时才会用到此功能)
* 9. void OLED_CLS(void) -- 复位/清屏
* 10. void OLED_Init(void) -- OLED屏初始化程序,此函数应在操作屏幕之前最先调用
* 11. void OLED_P6x8Str(unsigned char x yunsigned char ch[]) -- 6x8点整,用于显示ASCII码的最小阵列,不太清晰
* 12. void OLED_P8x16Str(unsigned char x yunsigned char ch[]) -- 8x16点整,用于显示ASCII码,非常清晰
* 13.void OLED_P16x16Ch(unsigned char x y N) -- 16x16点整,用于显示汉字的最小阵列,可设置各种字体、加粗、倾斜、下划线等
* 14.void Draw_BMP(unsigned char x0 y0x1 y1unsigned char BMP[]) -- 将128x64像素的BMP位图在取字软件中算出字表,然后复制到codetab中,此函数调用即可
*
* 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端口时钟
  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);
*/

}


/**************************实现函数********************************************
*函数原型: void IIC_Start(void)
*功  能: 产生IIC起始信号
*******************************************************************************/
void OLED_IIC_Start(void)
{
   SCL_H;
   SDA_H;
   SDA_L;
   SCL_L;

}


/**************************实现函数********************************************
*函数原型: void IIC_Stop(void)
*功  能:     //产生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写数据************************************/ 
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); /

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       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\

评论

共有 条评论