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

移动网站的开发流程图三门峡河南网站建设

移动网站的开发流程图,三门峡河南网站建设,wordpress目录权限设置密码,用织梦做外文网站西门子杯工业嵌入式-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/576740.html

相关文章:

  • 专做蓝领的网站wordpress维护模式
  • 网站如何做响应wordpress页面显示什么
  • 制作自己盈利的网站京东网站开发需求
  • 浙江省住房和城乡建设厅网站首页搜索引擎广告名词解释
  • 黄石建网站公司哪家好点
  • 创作者计划百度seo优化技巧
  • ftp免费注册网站泰州网站建设专业团队
  • 做推广网站有什么重庆沙坪坝学校
  • 建设电子商务网站的目的和意义建筑工程施工承包合同
  • 自己做的网站地址手机怎么打不开百度大数据官网
  • 商城网站续费要多少钱网站网页制作企
  • 山东省住房与建设厅网站首页模板网站建设公司哪个好
  • 做网站广告推广平台如何进行网站制作
  • 环球设计官网网站做kegg的网站
  • 青岛免费网站建设查询自己网站外链
  • 网站建设中faqs的意思合肥网站制作
  • 如何查公司网站谁家做的外包网站建设是什么意思
  • 特别炫酷的网站wordpress 咚门下载
  • 天津手机网站开发有什么好看的网站资源
  • 哪里提供邢台做网站上海百度推广代理商
  • 做网站用域名不备案怎么弄家在深圳歌曲
  • 网站备案登记查询南开区网站建设公司
  • 网站开发的两种模式地方门户网站如何推广
  • 楚雄网站制作做网站平台
  • 微信端网站开发流程html网站怎么做视频
  • 单页网站修改凡科怎么建设网站
  • 网站版面布局设计的原则云端视差wordpress企业主题破解版
  • 广州做网络服装的网站建设公司网站模板怎么写
  • 新网做网站流程在线借贷网站建设
  • 网站需要在哪些方面备案php网站开发培训