W806(一)模拟IIC驱动0.96OLED[移植]

news2024/9/21 14:52:25

前言

平头哥内核的国产开发板,资源丰富,按照官方的描述是能够吊打STM32F103C8T6的,22年刚发布的时候就买了,但是当时忙于考研,而且开发板的SDK不够完善,所以23年来填一下坑,今年我在官方群里找到了合适的SDK,感觉还不错。

正文

最初的SDK是寄存器版的,对于喜欢用库的32选手是不友好的,官方群出了一个HAL库的SDK,所以就有了这一篇学习记录。

一、移植STM32程序

既然是移植,那肯定要有原工程,中景园0.96OLED工程包合集

既然是移植,那肯定要有工程模板,W801、W806通用SDK,HAL库工程模板

链接在文章末尾

  1. CV

这一点看个人喜好,放哪里都可以,别给自己找不痛快就可以。

在project文件夹下新建文件夹HARDWARE用于存放硬件代码,将原工程中HARDWARE文件夹下的OLED文件夹复制到该HARDWARE文件夹中。

  1. CDK中添加Source

打开工程后,在工程主界面右击工程添加上一个步骤中新建的Hardware文件夹

  1. 修改OLED驱动文件

根据HAL库函数,将原有的标准库函数修改为SDK中的HAL库函数

修改这两个玩意,然后记得把头文件也改一下

  1. 配置主函数

/*
作者:tzh
日期:2023.02.19
功能描述:w806显示图片
----------------
模拟IIC驱动
VCC--3.3V
SCL--PA0
SDA--PA1
GND--电源地
----------------
*/
#include <stdio.h>
#include "wm_hal.h"
#include "bmp.h"
#include "oled.h"

int main(void)
{
    SystemClock_Config(CPU_CLK_160M);
    printf("enter main\r\n");
    HAL_Init();
    
    OLED_Init();
    OLED_ColorTurn(0);                //0正常显示,1 反色显示
    OLED_DisplayTurn(0);            //0正常显示 1 屏幕翻转显示
    OLED_DrawPoint(0,0);
    OLED_DrawLine(20,0,50,60);
    OLED_DrawCircle(64,32,20);
    OLED_Refresh();
    while (1)
    {
        OLED_ShowPicture(0,0,128,8,BMP1);
    }
    return 0;
}

二、移植后的效果图:

需要工程文件的可以点击链接积分下载,也可以私聊我白嫖(看到会回复)

https://download.csdn.net/download/shenqijiji/87463130

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/357874.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT原理与技术演进剖析

—— 要抓住一个风口&#xff0c;你得先了解这个风口的内核究竟是什么。本文作者&#xff1a;黄佳 &#xff08;著有《零基础学机器学习》《数据分析咖哥十话》&#xff09; ChatGPT相关文章已经铺天盖地&#xff0c;剖析&#xff08;现阶段或者只能说揣测&#xff09;其底层原…

为啥程序会有bug?

这是一篇半娱乐性的吐槽文章&#xff0c;权当给广大技术人员解解闷&#xff1a;&#xff09;。哈哈哈&#xff0c;然后我要开始讲一个经常在发生的事实了。&#xff08;程序员们可能会感到一些不适&#xff09;99.999999999%做技术的都会被问到或者被吐槽到&#xff1a;“你的程…

PPT和回放来了 | 中国PostgreSQL数据库生态大会圆满落幕

2月17-19日&#xff0c;中国PostgreSQL数据库生态大会在北京中科院软件所和CSDN平台以线下线上结合方式盛大召开&#xff01;本届大会由中国开源软件推进联盟PostgreSQL分会主办。作为自2017年后我们举办的第六届年度行业大会&#xff0c;延续了传播技术&#xff0c;发展产业生…

代码质量与安全 | 一文了解高级驾驶辅助系统(ADAS)及其开发中需要遵循的标准

高级驾驶辅助系统&#xff08;ADAS&#xff09;有助于提高车内每个人的安全性&#xff0c;帮助他们安全抵达目的地。这项技术功能非常重要&#xff0c;因为大多数的严重车祸都是人为错误造成的。 本篇文章将讨论什么是高级驾驶辅助系统&#xff08;ADAS&#xff09;&#xff0…

Linux基础-新手必备命令

概述系统工作系统状态检测文件与目录管理文件内容查阅与编辑打包压缩与搜索常见命令图解参考资料概述常见执行 Linux 命令的格式是这样的&#xff1a;命令名称 [命令参数] [命令对象]注意&#xff0c;命令名称、命令参数、命令对象之间请用空格键分隔。命令对象一般是指要处理的…

第三章 Kafka生产问题总结及性能优化实践

第三章 Kafka生产问题总结及性能优化实践 1、线上环境规划 JVM参数设置 kafka 是 scala 语言开发&#xff0c;运行在 JVM 上&#xff0c;需要对 JVM 参数合理设置&#xff0c;参看 JVM 调优专题 修改 bin/kafka-start-server.sh 中的 JVM 设置&#xff0c;假设机器是 32G 内…

Java有几种文件拷贝方式?哪一种最高效?

第12讲 | Java有几种文件拷贝方式&#xff1f;哪一种最高效&#xff1f; 我在专栏上一讲提到&#xff0c;NIO 不止是多路复用&#xff0c;NIO 2 也不只是异步 IO&#xff0c;今天我们来看看 Java IO 体系中&#xff0c;其他不可忽略的部分。 今天我要问你的问题是&#xff0c;…

一个巨型的ESP8266模块,围观围观

作者&#xff1a;晓宇&#xff0c;排版&#xff1a;晓宇微信公众号&#xff1a;芯片之家&#xff08;ID&#xff1a;chiphome-dy&#xff09;01 巨型ESP8266ESP8266几乎无人不知&#xff0c;无人不晓了吧&#xff0c;相当一部分朋友接触物联网都是从ESP8266开始的&#xff0c;…

软考中级-嵌入式系统设计师(二)

1、逻辑电路&#xff1a;组合逻辑单路、时序逻辑电路。根据电路是否有存储功能判断。 2、组合逻辑电路 指该电路在任一时刻的输出&#xff0c;仅取决于该时刻的输入信号&#xff0c;而与输入信号作用前电路的状态无关。一般由门电路组成&#xff0c;不含记忆元器件&#xff0…

XD文件转换为sketch的三种方法

XD文件如何转化为Sketch文件&#xff0c;作为竞品的两个产品&#xff0c;如果要互通到可以彼此转换为彼此的文件格式&#xff0c;还是有点难的。所以&#xff0c;今天我总结了 3 个方法&#xff0c;其中最后一个方法是最好用的&#xff01; XD 和 Sketch 算是竞品&#xff0c;想…

论文笔记:TIMESNET: TEMPORAL 2D-VARIATION MODELINGFOR GENERAL TIME SERIES ANALYSIS

ICLR 2023 1 intro 时间序列一般是连续记录的&#xff0c;每个时刻只会记录一些标量 之前的很多工作着眼于时间维度的变化&#xff0c;以捕捉时间依赖关系 ——>可以反映出、提取出时间序列的很多内在特征&#xff0c;比如连续性、趋势、周期性等但是现实时间序列数据中的…

linux环境搭建私有gitlab仓库以及启动gitlab后出现卡顿处理办法

搭建之前&#xff0c;需要安装相应的依赖包&#xff0c;并且要启动sshd服务(1).安装policycoreutils-python openssh-server openssh-clients [rootVM-0-2-centos ~]# sudo yum install -y curl policycoreutils-python openssh-server openssh-clients [rootVM-0-2-centos ~]…

C++【类与对象】

文章目录类与对象&#xff08;1&#xff09;类与对象一1.0.面向过程和面向对象初步认识1.1.类的引入1.2.类的定义1.3.类的访问限定符及封装1.4.类的作用域1.5.类的实例化1.6.类的对象大小的计算1.8.类成员函数的this指针&#xff08;2&#xff09;类与对象二2.0类的6个默认成员…

LeetCode——51. N 皇后

一、题目 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回所有不同的 n 皇后问题 的解决方案…

CS144-Lab4

概述 在实验0中&#xff0c;你实现了流量控制的字节流(ByteStream)的抽象概念。 在实验1、2和3中&#xff0c;你实现了该抽象概念与互联网提供的抽象概念之间的转换工具&#xff1a;不可靠的数据报(IP或UDP)。 现在&#xff0c;你已经接近顶峰&#xff1a;一个可以工作的TCP…

Word处理控件Aspose.Words功能演示:使用 C++ 在 Word 文档中查找和替换文本

Aspose.Words 是一种高级Word文档处理API&#xff0c;用于执行各种文档管理和操作任务。API支持生成&#xff0c;修改&#xff0c;转换&#xff0c;呈现和打印文档&#xff0c;而无需在跨平台应用程序中直接使用Microsoft Word Aspose API支持流行文件格式处理&#xff0c;并允…

如何使用MidJourney和ChatGPT制作动画短片?

Ammaar Reshi当我制作这部使用生成式人工智能制作的蝙蝠侠动画短片时——我不知道它会在不到一周的时间内获得 700 万次观看。想学&#xff01;给我们讲解下是整体的制作流程吧&#xff01;&#xff01;opusAmmaar Reshi我不是电影制作人&#xff0c;也从未写过剧本。我只是有还…

高频面试题|JVM虚拟机的体系结构是什么样的?

一. 前言最近有很多小伙伴都在找工作&#xff0c;他们在面试时经常被面试官问到一个问题&#xff1a;请说说JVM虚拟机的体系结构是什么样的?很多小伙伴都能说出堆、栈等相关内容&#xff0c;但面试官紧接着又问&#xff0c;你还知道其他内容吗&#xff1f;这时不少小伙伴就语塞…

STM32模拟SPI协议获取24位模数转换(24bit ADC)芯片AD7791电压采样数据

STM32模拟SPI协议获取24位模数转换&#xff08;24bit ADC&#xff09;芯片AD7791电压采样数据 STM32大部分芯片只有12位的ADC采样性能&#xff0c;如果要实现更高精度的模数转换如24位ADC采样&#xff0c;则需要连接外部ADC实现。AD7791是亚德诺(ADI)半导体一款用于低功耗、24…

C语言--回调函数

1. 什么是回调函数&#xff1f; 回调函数&#xff0c;光听名字就比普通函数要高大上一些&#xff0c;那到底什么是回调函数呢&#xff1f;恕我读得书少&#xff0c;没有在那本书上看到关于回调函数的定义。我在百度上搜了一下&#xff0c;发现众说纷纭&#xff0c;有很大一部分…