当前位置: 首页 > wzjs >正文

引领网站深圳网络公司有哪些

引领网站,深圳网络公司有哪些,上海人才网官网招聘 技工给,杭州网站建设 巴零西门子杯工业嵌入式-7-OLED 一、OLED 显示屏简介1. OLED 的基本特性2. 本次课程使用的 OLED 说明 二、I2C(IPHONEC)通信协议详解1. I2C 协议简介2. I2C 的实现方式 三、SSD1306 驱动芯片及显示流程1. 驱动芯片简介2. OLED 驱动程序设计要点 四、OLED 驱动…


链接: B站视频

一、OLED 显示屏简介

1. OLED 的基本特性

自发光,无需背光源

对比度高

响应速度快

视角广

功耗低

在嵌入式系统中应用广泛

2. 本次课程使用的 OLED 说明

使用 I2C (I²C, IPHONEC) 接口通信

驱动芯片为 SSD1306

显示屏为 0.91 寸 OLED

OLED 接口:采用 模拟 I2C 模式,GPIO 引脚为 PB8(SCL) 和 PB9(SDA)

二、I2C(IPHONEC)通信协议详解

1. I2C 协议简介

飞利浦公司开发的同步串行通信协议
使用两根线:
SCL(串行时钟线)
SDA(串行数据线)

特性:
双向通信
多主多从支持
地址和数据均为 8 位
支持总线仲裁

2. I2C 的实现方式

(1)软件模拟 I2C
使用任意 GPIO 模拟时序

优点:灵活、调试方便、不受硬件限制

缺点:占用 CPU,速度慢,需精确延时

(2)硬件 I2C
使用 MCU 内置 I2C 外设

优点:速度快、支持中断/DMA、CPU 占用低

缺点:引脚固定、调试复杂

三、SSD1306 驱动芯片及显示流程

1. 驱动芯片简介

支持命令设置对比度、显示开关、显示模式等

通过 I2C 接收 MCU 命令进行控制

2. OLED 驱动程序设计要点

初始化:设置地址模式、方向、对比度等

显示缓冲区设计:

数据先写入缓存,再刷新显示屏

避免闪烁、提高刷新效率

注意事项:

使用硬件复位模式

初始化必须在发送指令之前完成

四、OLED 驱动代码结构说明

1. 头文件和源文件说明

oled.h / oled.c:基础驱动函数定义与实现
很多都是写好的,可以直接拿来用,以下师oled.h

#ifndef __OLED_H
#define __OLED_H/************************* 头文件 *************************/#include "HeaderFiles.h"//-----------------OLED端口定义---------------- #define u8 unsigned char
#define u32 unsigned int/* 引脚定义 - 模拟IIC */
#define OLED_SCL_PORT    GPIOB
#define OLED_SCL_PIN     GPIO_PIN_8
#define OLED_SDA_PORT    GPIOB
#define OLED_SDA_PIN     GPIO_PIN_9
/* SCL和SDA引脚控制宏定义 */
#define OLED_SCLK_Set()     gpio_bit_set(OLED_SCL_PORT, OLED_SCL_PIN)
#define OLED_SCLK_Clr()     gpio_bit_reset(OLED_SCL_PORT, OLED_SCL_PIN)
#define OLED_SDIN_Set()     gpio_bit_set(OLED_SDA_PORT, OLED_SDA_PIN)
#define OLED_SDIN_Clr()     gpio_bit_reset(OLED_SDA_PORT, OLED_SDA_PIN)
#define IIC_READ_SDA  gpio_input_bit_get(OLED_SDA_PORT, OLED_SDA_PIN)#define OLED_CMD  0	//写命令
#define OLED_DATA 1	//写数据void OLED_ClearPoint(u8 x,u8 y);
void OLED_ColorTurn(u8 i);
void OLED_DisplayTurn(u8 i);
void I2C_Start(void);
void I2C_Stop(void);
void I2C_WaitAck(void);
void Send_Byte(u8 dat);
void OLED_WR_Byte(u8 dat,u8 mode);
void OLED_DisPlay_On(void);
void OLED_DisPlay_Off(void);
void OLED_Refresh(void);
void OLED_Clear(void);
void OLED_DrawPoint(u8 x,u8 y);
void OLED_DrawLine(u8 x1,u8 y1,u8 x2,u8 y2);
void OLED_DrawCircle(u8 x,u8 y,u8 r);
void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 size1);
void OLED_ShowString(u8 x,u8 y,u8 *chr,u8 size1);
void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size1);
void OLED_ShowChinese(u8 x,u8 y,u8 num,u8 size1);
void OLED_ScrollDisplay(u8 num,u8 space);
void OLED_WR_BP(u8 x,u8 y);
void OLED_ShowPicture(u8 x0,u8 y0,u8 x1,u8 y1,u8 BMP[]);
void OLED_Init(void);#endif

oledfont.h:字模库文件(包含 ASCII 字符与汉字模组)

2. 驱动引脚设置

模拟 I2C 使用引脚:PB8 (SCL)、PB9 (SDA)

五、汉字显示与取模方法

1. 汉字取模软件使用方法(PCtoLCD2002)

设置格式为:

扫描方式:音码逆向列行式

输出格式:C51 格式

输入汉字,例如“智能制造”

选择字体,点击生成字模

将生成的数据复制进 oledfont.h 汉字库中
在这里插入图片描述

2. show_chinese 函数使用说明

函数原型:Show_Chinese(x, y, num, size)

参数说明:

x, y:起始坐标

num:汉字在数组中的编号

size:字体大小(16/24)

排列显示时,注意按字宽(如 16)偏移 x 坐标

//显示汉字
//x,y:起点坐标
//num:汉字对应的序号
void OLED_ShowChinese(u8 x,u8 y,u8 num,u8 size1)
{u8 i,m,n=0,temp,chr1;u8 x0=x,y0=y;u8 size3=size1/8;while(size3--){chr1=num*size1/8+n;n++;for(i=0;i<size1;i++){if(size1==16){temp=Hzk1[chr1][i];}//调用16*16字体else if(size1==24){temp=Hzk2[chr1][i];}//调用24*24字体else if(size1==32)       {temp=Hzk3[chr1][i];}//调用32*32字体else if(size1==64){temp=Hzk4[chr1][i];}//调用64*64字体else return;for(m=0;m<8;m++){if(temp&0x01)OLED_DrawPoint(x,y);else OLED_ClearPoint(x,y);temp>>=1;y++;}x++;if((x-x0)==size1){x=x0;y0=y0+8;}y=y0;}}
}

六、动态数据显示:ADC 电压显示实例

1. 基础思路

板子本身不带oled,要自己焊接

通过 ADC 获取电压值

使用 printf + OLED 显示电压值

利用 sprintf 将变量格式化为字符串显示

2. 具体实现

char date[20];
sprintf(date, "Voltage=%.2fV", voltage_value);
OLED_ShowString(0, 16, date, 16);

OLED_ShowString 函数参数:

x = 0,y = 16 显示在第二行

date:要显示的字符串

16:字体大小

void UsrFunction(void)
{unsigned char data[]=" ";while(1){OLED_ShowString(0,0,"**Hello CIMC**",16);/* 延时1秒 */delay_1ms(1000);adc_flag_clear(ADC0,ADC_FLAG_EOC);  //  清除结束标志while(SET != adc_flag_get(ADC0,ADC_FLAG_EOC)){}  //  获取转换结束标志adc_value = ADC_RDATA(ADC0);  // 读取ADC数据Vol_Value = adc_value*3.3/4095;  //  转换成电压值printf("adc_value=%d\r\n",adc_value);         // 结果输出原始值printf("Vol_Value=%.2f\r\n",Vol_Value);         // 结果输出电压值sprintf(data,"Vol=%.2f V",Vol_Value);OLED_ShowString(0,16,data,16);delay_1ms(1000);OLED_Refresh();}
}

七、优化建议与总结

1. 字模与显示优化技巧

使用页面缓存、局部更新,提升刷新效率

利用 DMA 传输降低 CPU 占用

适当管理显示缓冲区,避免重复刷新

2. 总结与扩展建议

掌握 OLED 驱动和显示流程

可扩展应用如:电压表、菜单系统、图形显示等

鼓励学生动手实现更多创意功能

http://www.dtcms.com/wzjs/571143.html

相关文章:

  • 推广网站排名哪个网站做h5好用
  • 开发手机网站用什么语言沪尚茗居全包价格
  • 为什么我的网站无法访问模板ppt免费
  • 在哪里做网站比较好网站建设视频vs
  • 新闻类网站开发多久好孩子官方网站王建设
  • 黑龙江建设厅网站首页优秀专题网站
  • 广告联盟的网站怎么做做网站简单么
  • wordpress最新主题下载seo服务公司深圳
  • 网络营销网站规划建设实训作业安卓ui用什么软件设计
  • 吉安县规划建设局网站添加网站备案号链接
  • 网站建设合同用贴印花税吗传奇游戏代理0加盟费
  • 哪个公司建立网站好免费打开网站
  • 哪些网站不扣流量oa办公系统官网页版
  • 成都网站制作免费个人推广引流平台
  • 做安防在哪个网站做广告呢推广型网站建设电话
  • 做化妆品等的网站网站特效 站长
  • 增城建设网站蜘蛛网网站建设分析
  • 做视频网站的条件网站建设方法冫金手指排名26
  • 运河建设管理有限公司网站新媒体营销h5制作网站
  • 车辆年检查询系统官方网站知识库管理系统解决方案
  • 深圳洲聚网站建设黄山旅游攻略 知乎
  • 查互做蛋白的网站自己做网站必须要学哪些
  • 博士后是否可以做网站负责人网页设计实验报告总结与展望
  • 做淘宝店招的网站万网网
  • 广西圣泰建设工程有限公司网站用ps制作黑色高光网站按钮
  • 广州高端网站开发公司蓝潮网站建设
  • 向搜索引擎提交网站毕业了智慧团建密码忘了
  • 国际贸易网站哪家好长春网站建设制作
  • cms网站怎么做空间网站
  • 网站建设调查通知做网站写页面多少钱