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

【普中 51-Ai8051 开发攻略】-- 第 30 章 OLED 液晶显示实验-硬件 IIC

(1)实验平台普中 51-Ai8051 开发板​​https://item.taobao.com/item.htm?abbucket17id1026052331067(2)资料下载 普中科技-各型号产品资料下载链接前面已经使用 IO 口软件模拟 IIC 时序与 OLED 通信实现字符汉字的显示。 本章学习使用 AI8051 的硬件 IIC 接口对 OLED 液晶屏显示控制。 本章分为如下几部分内容30.1 实验介绍30.1.1 实验简介30.1.1.1 AI8051U IIC 介绍30.1.2 实验目的30.2 硬件设计30.3 软件设计30.3.1 创建和配置工程30.3.1.1 GPIO 配置30.3.1.2 配置 I2C30.3.1.3 生成工程30.3.2 添加用户驱动代码30.3.2.1 oled.c 文件30.3.2.2 main.c 文件30.4 实验现象30.1 实验介绍30.1.1 实验简介30.1.1.1 AI8051U IIC 介绍Ai8051U 系列的单片机内部集成了一个 I2C 串行总线控制器。 I2C 是一种高速同步通讯总线 通讯使用 SCL(时钟线)和 SDA数据线 两线进行同步通讯。对于 SCL 和 SDA 的端口分配 Ai8051U 系列的单片机提供了切换模式 可将 SCL和 SDA 切换到不同的 I/O 口上 以方便用户将一组 IC 总线当作多组进行分时复用。 管脚分配如下与标准 I2C 协议相比较 忽略了如下两种机制●发送起始信号(START 后不进行仲裁●时钟信号(SCL 停留在低电平时不进行超时检测Ai8051U 系列的 I2C 总线提供了两种操作模式 主机模式(SCL 为输出口 发送同步时钟信号 和从机模式(SCL 为输入口 接收同步时钟信号)30.1.2 实验目的通过硬件 IIC 通信在 OLED 上显示字符汉字。30.2 硬件设计本实验使用到硬件资源如下1 IIC OLED 液晶2 串口 1相关电路在前面章节已经介绍过 此处省略。30.3 软件设计30.3.1 创建和配置工程按照前面章节内容创建一份新工程 并命名为 27-oled-iic 如下图所示30.3.1.1 GPIO 配置使能端口和时钟 将 UART1 管脚配置为 P30 和 P31 将 I2C 外设管脚设置为P23 和 P24 等。 如下图所示30.3.1.2 配置 I2C在 I2C 的参数设置界面中 可选择主机模式 I2C 时钟分频为 16 等。 如下图所示30.3.1.3 生成工程配置完成后 按下代码生成按钮 自动创建工程 系统开始生成初始化代码。生成工程文件目录如下图所示在工程文件夹内新建一个 APP 文件夹 用于存储用户编写的外设驱动 方便后期工程管理和程序移植。 在 APP 文件夹下新建 oled.c、 oled.h 和 oledfont.h文件 其中 oled.c 和 oled.h 用于存储 OLED 液晶相关驱动 例如 OLED 读写、 画点、 画线、 显示字符汉字等 oledfont.h 用于存储字符汉字字模数据。然后在导出的工程中添加 APP 组 并将 xx.c 导入到工程组内 最后添加头文件路径 否则编译将报错。 如下30.3.2 添加用户驱动代码30.3.2.1 oled.c 文件该文件代码比较多 我们看下使用硬件 I2C 的几个关键时序函数。代码如下void wait(void) { while (!I2C_CheckMasterFlag()); I2C_ClearMasterFlag(); } void iic_start(void) { I2C_Start(); wait(); } void iic_stop(void) { I2C_Stop(); wait(); } void write_data(u8 dat) { I2C_WriteData(dat); I2C_SendData(); wait(); } void iic_wait_ack(void) { I2C_RecvACK(); wait(); }I2C_Start 函数为起始信号、 I2C_Stop 为停止信号、 I2C_WriteData 为写数据 I2C_SendData 为数据发送、 I2C_RecvACK 为接收应答信号 在这些操作后需要通过 I2C_CheckMasterFlag 判断主机状态 并通过 I2C_ClearMasterFlag 清除该标志。30.3.2.2 main.c 文件//AICUBE_USER_HEADER_REMARK_BEGIN /* 深圳市普中科技有限公司PRECHIN 普中 * 在线视频https://space.bilibili.com/2146492485/video 官网www.prechin.cn * 实验名称OLED液晶显示实验-使用硬件IIC * * 接线说明参考电路图 * * 实验现象程序下载成功后OLED液晶显示字符汉字 * * 注意事项 * */ //AICUBE_USER_HEADER_REMARK_END #include config.h //默认已包含stdio.h、intrins.h、ai_usb.h等头文件 //AICUBE_USER_INCLUDE_BEGIN // 在此添加用户头文件包含 #include oled.h //AICUBE_USER_INCLUDE_END //AICUBE_USER_GLOBAL_DEFINE_BEGIN // 在此添加用户全局变量定义、用户宏定义以及函数声明 //AICUBE_USER_GLOBAL_DEFINE_END //////////////////////////////////////// // 项目主函数 // 入口参数: 无 // 函数返回: 无 //////////////////////////////////////// void main(void) { //AICUBE_USER_MAIN_INITIAL_BEGIN // 在此添加用户主函数初始化代码 //AICUBE_USER_MAIN_INITIAL_END SYS_Init(); printf(Hello World !\n); //AICUBE_USER_MAIN_CODE_BEGIN // 在此添加主函数中运行一次的用户代码 OLED_Init(); OLED_Clear(); OLED_ShowString(0,0,Hello World,12); OLED_ShowString(0,15,Hello World,16); OLED_ShowFontHZ(0,35,0,16,1); OLED_ShowFontHZ(1*16,35,1,16,1); OLED_Refresh_Gram(); //AICUBE_USER_MAIN_CODE_END while (1) { //AICUBE_USER_MAIN_LOOP_BEGIN // 在此添加主函数中用户主循环代码 //AICUBE_USER_MAIN_LOOP_END } }主函数实现的功能很简单 首先调用初始化函数。 然后调用 OLED 显示函数像是字符串和汉字内容。30.4 实验现象将程序编译下载到目标板运行 打开串口助手“\5--开发工具\5-串口调试助手\串口调试助手丁丁 \sscom5.13.1.exe” 实验现象 OLED 上显示字符汉字。

相关文章:

【普中 51-Ai8051 开发攻略】-- 第 30 章 OLED 液晶显示实验-硬件 IIC

(1)实验平台: 普中 51-Ai8051 开发板​​https://item.taobao.com/item.htm?abbucket17&id1026052331067(2)资料下载 :普中科技-各型号产品资料下载链接 前面已经使用 IO 口软件模拟 IIC 时序与 OLED 通信实现字符汉字的显示。 本章学习使用 AI805…...

杨立昆转推“Meta AI 已死”:一场大厂AI战略的自杀式摇摆

好家伙,杨立昆(Yann LeCun)亲自转发“讣告”了。 就昨天,这位 Meta 的首席 AI 科学家,在 X 上转了一条推,内容直指自家公司——Meta AI 部门“已死”。原文副标题更狠:“自研人才流失&#xff0…...

深入YOLOv8损失函数:为什么自带的Focal Loss会报错?一次完整的源码调试与修复记录

深入YOLOv8损失函数:为什么自带的Focal Loss会报错?一次完整的源码调试与修复记录 在目标检测领域,YOLOv8凭借其卓越的性能和易用性赢得了广泛关注。然而,当开发者尝试深入模型内部机制时,往往会遇到一些意料之外的挑战…...

从零到部署:在Linux服务器上用Python搭建并调用WPS地理处理服务

从零到部署:在Linux服务器上用Python搭建并调用WPS地理处理服务 当遥感影像分析遇上自动化处理流程,地理信息系统(GIS)开发者常面临一个关键挑战:如何将复杂的空间运算封装成可远程调用的标准化服务?这正是…...

手把手教你用Vivado配置Xilinx SEM IP 3.1:从IP Catalog到Tera Term串口调试全流程

手把手教你用Vivado配置Xilinx SEM IP 3.1:从IP Catalog到Tera Term串口调试全流程 在FPGA开发中,软错误缓解(SEM)IP核是确保设计可靠性的关键组件。对于使用Xilinx Artix-7系列芯片的工程师来说,掌握SEM IP的完整配置…...

北京理工大学:数据中心节能降碳之算电协同——背景、技术、实践和展望 2026

这份由北京理工大学 2026 年初发布的《数据中心节能降碳之算电协同:背景、技术、实践和展望》报告,围绕算电协同,从背景、技术、实践、展望四方面系统分析,核心是推动算力与电力、热力深度融合,助力数据中心节能降碳、…...

CANopen设备配置不求人:手把手教你用EDS/DCF文件玩转对象字典

CANopen设备配置实战:从EDS/DCF解析到对象字典高效配置 在工业自动化领域,CANopen协议因其开放性和灵活性成为设备互联的主流选择。而对象字典(Object Dictionary)作为CANopen设备的核心配置数据库,其管理效率直接影响项目开发周期。本文将带…...

Sunshine终极指南:8步搭建你的个人游戏串流服务器

Sunshine终极指南:8步搭建你的个人游戏串流服务器 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 想要在任何设备上流畅玩PC游戏吗?Sunshine是一款免费开源…...

保姆级教程:手把手解决CANoe 17.0在Win11系统上的安装失败问题(附临时文件夹清理方法)

CANoe 17.0在Windows 11系统安装全攻略:从权限配置到环境优化 当汽车电子工程师第一次在Windows 11系统上安装CANoe 17.0时,可能会遇到各种意想不到的障碍。不同于常见的软件安装过程,这款专业工具对系统环境有着更为严格的要求。本文将深入…...

Logisim保姆级避坑指南:从布尔表达式到卡诺图,一次搞定数字逻辑实验常见错误

Logisim数字逻辑实验避坑实战:从表达式到卡诺图的深度解法 为什么你的Logisim电路总是不工作? 刚接触数字逻辑实验时,我总在Logisim里反复调试同一个电路——明明按照教材步骤操作,仿真结果却和预期不符。直到某次深夜debug才发现…...

Fast-GitHub浏览器插件:国内开发者必备的GitHub下载加速终极解决方案

Fast-GitHub浏览器插件:国内开发者必备的GitHub下载加速终极解决方案 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 还…...

ESP8266透传总失败?手把手教你用Arduino IDE和串口助手搞定Blinker配网(避坑大全)

ESP8266透传配置终极指南:从AT指令到Blinker配网全解析 物联网开发者们,是否曾被ESP8266模块的透传配置折磨得焦头烂额?当你在深夜调试AT指令却只收到一堆乱码时,那种挫败感我深有体会。本文将带你彻底攻克这个物联网入门的第一道…...

别再手动折腾了!CubeMX生成MDK工程后,一键开启STM32F4的FPU和DSP库(附完整配置流程)

解放双手:STM32F4硬件加速全自动配置指南 每次新建工程都要重复配置FPU和DSP库?是时候告别这种低效操作了。本文将带你用CubeMXMDK打造一套零手动干预的完整工作流,让硬件加速功能从工程创建之初就自动就位。 1. 环境准备与工程创建 在开始之…...

从源码到实战:手把手教你自定义一个比StringUtils更强大的Java数字校验工具类

从源码到实战:构建超越StringUtils的Java数字校验工具类 在Java开发中,数字校验是每个开发者都会遇到的常见需求。虽然Apache Commons Lang的StringUtils提供了基础的isNumeric方法,但在实际业务场景中,我们经常需要处理更复杂的…...

告别寄存器操作:在RA4M2上体验瑞萨FSP库点灯,对比STM32 HAL/LL库有何不同?

从STM32到RA4M2:FSP库与HAL/LL库的深度对比与实践指南 如果你已经习惯了STM32的HAL库或LL库开发,初次接触瑞萨RA4M2的FSP库可能会感到既熟悉又陌生。本文将带你深入比较这两种开发方式的异同,并通过一个实际的LED控制案例,展示如何…...

从LaTeX到手写笔记:希腊字母的‘两栖’书写实战指南(含清晰对比图)

从LaTeX到手写笔记:希腊字母的‘两栖’书写实战指南 在数字化与纸质化并行的学术工作流中,希腊字母的书写问题常常成为效率瓶颈。当你在深夜推导公式时,是否曾因手写θ与δ难以区分而被迫重新查阅资料?当你在整理课堂笔记时&#…...

3.1 FiRa UCI规范解析——命令、响应与通知的交互逻辑

1. FiRa UCI规范的核心交互机制 第一次接触FiRa UCI规范时,我被它严谨的消息交互设计所震撼。这个看似简单的命令-响应机制,实际上蕴含着UWB通信的精妙控制逻辑。就像交通信号灯指挥车辆通行一样,UCI规范通过明确的指令流向和状态反馈&#…...

告别充电焦虑!用FS4066系列芯片DIY一个支持USB PD快充的2-4串锂电池充电器(附完整电路图)

用FS4066系列芯片打造高效多串锂电池快充方案 在创客圈子里,给多节串联锂电池设计充电电路一直是个既令人兴奋又充满挑战的课题。想象一下,当你精心组装的无人机因为充电效率低下而频繁停飞,或者户外电源设备因为充电管理不当导致电池寿命骤减…...

蓝桥杯嵌入式省赛串口通信实战:用STM32G431RBT6和CubeMX搞定数据收发与LCD显示

蓝桥杯嵌入式省赛串口通信实战:STM32G431RBT6与CubeMX高效开发指南 对于备战蓝桥杯嵌入式省赛的选手而言,串口通信与LCD显示的联动实现往往是比赛中的关键得分点。本文将围绕STM32G431RBT6开发板,通过CubeMX和Keil MDK5工具链,深入…...

告别环境配置烦恼:Windows 10/11下RT-Thread Studio 2.2.7保姆级安装与首次运行指南

告别环境配置烦恼:Windows 10/11下RT-Thread Studio 2.2.7保姆级安装与首次运行指南 对于刚接触嵌入式开发的初学者来说,环境配置往往是第一个"拦路虎"。本文将手把手带你完成RT-Thread Studio在Windows系统下的完整安装流程,避开常…...

CentOS 7下VNC连接Sentaurus TCAD服务器,从安装到排错的保姆级避坑指南

CentOS 7下高效连接Sentaurus TCAD的工程实践指南 在半导体设计与仿真领域,Sentaurus TCAD作为行业标准工具链,其服务器环境的稳定访问是研发效率的关键保障。对于刚接触Linux服务器环境的工程师或研究人员而言,如何通过VNC实现图形化界面的远…...

TrollInstallerX终极指南:iOS 14-16.6.1设备一键安装TrollStore

TrollInstallerX终极指南:iOS 14-16.6.1设备一键安装TrollStore 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX TrollInstallerX是一款专为iOS 14.0到16.6.1…...

避坑!用ArcGIS计算格网内耕地比例时,90%的人会忽略的数据连接问题

避坑!用ArcGIS计算格网内耕地比例时,90%的人会忽略的数据连接问题 在土地利用规划、农业资源评估等GIS应用中,计算规则格网内的耕地面积占比是一项基础但关键的操作。许多从业者能够顺利完成渔网创建、耕地提取和分区统计步骤,却在…...

LAV Filters终极实战指南:深度解析开源媒体解码器的性能优化与架构设计

LAV Filters终极实战指南:深度解析开源媒体解码器的性能优化与架构设计 【免费下载链接】LAVFilters LAV Filters - Open-Source DirectShow Media Splitter and Decoders 项目地址: https://gitcode.com/gh_mirrors/la/LAVFilters LAV Filters是一套基于FFm…...

Cadence SKILL脚本实战:5分钟搞定TESTKEY原理图批量创建(附完整代码)

Cadence SKILL脚本实战:5分钟搞定TESTKEY原理图批量创建(附完整代码) 在集成电路设计领域,TESTKEY(测试结构)的创建是验证工艺模型和器件特性的基础工作。传统手动放置器件的方式不仅效率低下,还…...

别再混着用了!C++里malloc、new和vector到底该怎么选?一个真实项目踩坑复盘

别再混着用了!C里malloc、new和vector到底该怎么选?一个真实项目踩坑复盘 在开发一个高性能数据缓存管理器时,团队新成员提交的代码引发了持续三天的内存泄漏排查。同一个功能模块中竟同时出现了malloc、new和vector三种内存管理方式&#xf…...

如何在PowerPoint中高效使用LaTeX进行数学公式排版

如何在PowerPoint中高效使用LaTeX进行数学公式排版 【免费下载链接】latex-ppt Use LaTeX in PowerPoint 项目地址: https://gitcode.com/gh_mirrors/la/latex-ppt 对于需要制作学术演示文稿的科研人员、教师和学生来说,在PowerPoint中排版复杂的数学公式一直…...

Vue3组合式API进阶:深入理解和高效使用Composition API

Vue3组合式API进阶:深入理解和高效使用Composition API 前言 大家好,我是前端老炮儿!今天咱们来聊聊Vue3组合式API的进阶用法。 你以为ref和reactive就够了?那你可太天真了!Vue3的Composition API远比你想象的更强大。…...

别再折腾源码编译了!用Docker 5分钟搞定 mediasoup-demo v5 视频会议服务器部署

5分钟极速部署:Docker化mediasoup视频会议系统实战指南 在实时音视频通信领域,快速搭建可靠的测试环境往往是开发者面临的第一道门槛。传统源码编译方式需要处理Node.js版本兼容、依赖下载、端口配置等一系列繁琐问题,而Docker技术为这一过程…...

专业的水情监视图厂家

在城市建设与发展过程中,水情监测至关重要。尤其是在暴雨等极端天气下,城市低洼地带、老旧小区等区域容易出现积水问题,严重影响交通和居民生活安全。因此,选择一家专业的水情监视图厂家,对于城市管理者来说是一项关键…...