什么是IIC总线

以下内容摘自《ARM嵌入式系统基础教程(第二版)》

IIC总线(Inter IC BUS)是NXP公司推出的芯片间串行传输总线

功能
他用两根线(串行数据SDA,串行时钟SCL)实现了完善的双向数据传送

连线要求
SDA和SCL都是双向线路。连接到总线的器件的输出级必须是漏极开路或者集电极开路,都通过一个电流源或者上拉电阻连接到正的电源电压。当总线空闲时,两条线路都是高电平。

传输速率
在标准模式下,总线传输速率为0-100kbit/s,在高速模式下,可以达到0-400kbit/s且总线上拉电阻越小,传输速率越高
一般情况下,100kbit/s总线速率要接一个5.1kΩ的上拉电阻

STM32CubeMX配置I2C

如图所示进行操作
可以看到SDA引脚和PB7共用,SCL引脚和PB6共用


完事配置时钟树,生成代码即可

Proteus原理图

元件库搜索OLED12864I2C即可找到该OLED屏幕
即0.96寸的I2C OLED屏幕(128*64,四脚)

符号 含义
GND 电源地
VCC 接电源正3.3~5V
SCL SPI时钟线
SDA SPI数据线

连线说明
SCL和SDA需要连上拉电阻,然后和芯片的SCL引脚和SDA引脚连接
详细原理图如下

Keil移植OLED

OLED驱动文件包
百度网盘链接: https://pan.baidu.com/s/1_hbBIDBMgMm_pEWJhbZGZw
提取码:csqc

一共五个文件,oled.c,oled.h,oledfont.h,oledbmp.h和一个说明文件
按照说明文件的操作步骤进行移植

main函数写入代码

  /* USER CODE BEGIN 2 */OLED_Init();//OLED初始化OLED_Clear(); //清屏OLED_ShowString(0,6,(uint8_t *)"Hello World!",12);//显示字符串/* USER CODE END 2 */

编译运行不报错即可进行仿真

取模软件PctoLCD2002

软件包: https://pan.baidu.com/s/1IPnVShwU0MoaAnmAprCLqQ .
提取码:4pvd

生成任意汉字
打开取模软件,配置选项如下,选择C51格式,点击左下角的“确定”


选择字符模式,输入想要生成的字符,最后点击生成字模即可,如图所示


复制生成的一长串字模代码,粘贴进oledfont.h的Hzk[]中,如图


生成任意BMP图像
打开取模软件,配置选项如下,选择C51格式,点击左下角的“确定”


然后选择图形模式,点击左上角的新建图像,输入宽高128,64,确定即可生成一张画布

在画布上画你想画的图案,最后点击生成字模即可,如图所示

随便画一个QQ


复制生成的字模代码,粘贴进oledbmp.h的BMP[]中,如图

OLED显示函数

显示字符串

void OLED_ShowString(uint8_t x,uint8_t y,uint8_t *chr,uint8_t Char_Size);

举例

OLED_ShowString(0,6,(uint8_t *)"Hello World!",12);

显示汉字

//hzk 用取模软件得出的数组
void OLED_ShowCHinese(uint8_t x,uint8_t y,uint8_t no)

第一个参数可以理解为放在第几行,第二个参数为第几列,第三个参数时取模之后放在oledfont.h文件的数组编号

显示图形

void OLED_Draw12864BMP(uint8_t BMP[]);

参数就是oledbmp.h文件的BMP数组名
注意要先定义一下

extern unsigned char BMP1[];
OLED_Draw12864BMP(BMP1);

显示数字

//显示2个数字
//x,y :起点坐标
//len :数字的位数
//size:字体大小
//mode:模式   0,填充模式;1,叠加模式
//num:数值(0~4294967295);
void OLED_ShowNum(uint8_t x,uint8_t y,unsigned int num,uint8_t len,uint8_t size2)

仿真失败


仿真还是没成功,OLED一直黑屏,两条线都是高电平(红色的)
这也就是说连线没毛病,但就是没有数据传过来,不知道为什么,折腾了好多天,先放在这吧

stm32CubeMX+Proteus仿真OLED12864I2C相关推荐

  1. STMCubeMX+Proteus仿真DHT11(LCD1602显示)

    本文说明 开发工具:STM32CubeMX+Keil5 开发芯片:STM32F103R6 采温模块:DHT11 数显屏幕:LCD1602 仿真软件:Proteus 8.12 项目目标:DHT11读取温 ...

  2. STMCubeMX+Proteus仿真DHT11(数码管显示)

    目录 数码管 DHT11简介 精度 量程 DHT11接线图 DHT11引脚说明 STM32CubeMX配置 Keil移植DHT11 核心代码 Proteus仿真 DHT11库 sys.h DHT11. ...

  3. VSPD+XCOM+Proteus仿真stm32串口通信

    本文说明 功能要求 开机后,向串口1发送"Welcome" 串口1接收字节指令"0xA1",打开LED1,回传"LED1 ON" 串口1接收 ...

  4. Proteus仿真STM32F103R6微控制器的GPIO(按键控制LED开关)

    Proteus仿真STM32F103R6微控制器的GPIO,检查按键,控制LED灯的反转.. 输入:按键检测:输出:高低电平,控制LED. 一.原理图: 二.源码: #include "st ...

  5. Proteus仿真STM32F103R6的寄存器版跑马灯程序

    STM32最简单的外设莫过于IO口的高低电平控制了, Proteus仿真STM32F103R6的跑马灯程序. 一.原理图 二.跑马灯C程序 // 粗略延时函数 static void delay(un ...

  6. 51单片机的轮胎气压监测系统_SHT11传感器的温度、湿度采集系统,51单片机,Proteus仿真,C代码等...

    设计要求 1.设计一套基于51单片机的温湿度Proteus仿真监控系统: 2.采用高精度的SHT11温湿度传感器模块: 3.LCD液晶实时显示当前环境温湿度值: 4.设计报警单元,实现对超限温湿度监控 ...

  7. c语言设计一个仿真窗口的程序,51单片机C语言实例(350例)Proteus仿真和代码

    100-24c02记忆开机次数 101-24c02存储上次使用中状态 102-DS1302 时钟原理 103-DS1302可调时钟 104-DS1302时钟串口自动更新时间 105-1602液晶显示D ...

  8. ADC0832程序完整版 源码+Proteus仿真

    前段时间一直在为ADC0832的程序感到疑惑,从网上找了很多的代码,用Proteus仿真,最后都出现了一些奇怪的问题,有的根本没法读取数据,有的数据有错误. 当参考电压为5V时,如果把输入电压从0一直 ...

  9. STM32 基于正电原子开发板,改换芯片为STM32F103R6,Proteus仿真的一些问题

    最近在学STM32,网上收集了一些信息,最后用正点原子的开发板来学习. MDK的配置请参考原子哥的资料,我主要的学习方法是参考原子哥的开发板与实验案例,改换不一样的芯片,也要做出的一样的效果.但在最基 ...

最新文章

  1. 活久见!技术面试官竟然给我出了一个脑筋急转弯,还问我王者荣耀什么段位?...
  2. tRNAscan-SE 预测tRNA基因
  3. java bits_一段关于JAVA程序升级的问题(Changing bits)
  4. linux+基因组字符替换,liftover基因组版本直接的coordinate转换
  5. WinCE6.0 R3 安装记
  6. Facebook首次披露自研AI芯片细节:为视频而生,LeCun挂帅
  7. 【Science】颠覆三观的超强聚类算法
  8. Java学习(21-25天, 树与二叉树)
  9. html插入swf自动播放,html嵌入播放器,flv视频播放器 Flvplayer.swf 可自动播放参数说明...
  10. AmazeUI组件使用和百度地图集成
  11. 突破人生的瓶颈(心灵之灯)
  12. Odoo 仓库出入库 使用电子秤(地磅)称重获取数量。
  13. Python的模式匹配
  14. 5.2 C语言练习(电报加密:输入一行电报文字,将字母变成其下一字母(如’a’变成’b’……’z’变成’a’其它字符不变)。)
  15. 技术博客|第4期:个性化视频搜索引擎简介
  16. Aut(S3)=Inn(S3)的证明和元素寻找
  17. 计算机白板培训报道,巧用白板,增色课堂——南宁市五象教育集团小学部开展希沃白板五实操培训活动...
  18. MIPS系统调用追踪(一)
  19. 产品经理学习笔记- 猿题库运营面试准备
  20. 聊聊GPU利用率那些事

热门文章

  1. 天津计算机专业专科大学排名,天津的计算机专业大学排名
  2. 【Docker容器安装、配置、部署】
  3. string字符串输入
  4. 你真的知道什么是置信区间吗?
  5. 从零搭建WebApi接口开发框架-接口规范
  6. 微型计算机的alu部件包含在什么中,【单选题】微型计算机的ALU部件包括在( )之中。A. 存储器 B. I/O接口 C. O/I接口 D. CPU...
  7. GateWay入门Demo
  8. Linux权限委派(生产环境必备)
  9. 旅游行业APP开发方案
  10. 31.进程管理之进程概览,及ps命令详解,ps -ef,ps aux,ps -le,ps -l输出详解和示例