国际哥的独立博客

高冷的逗逼码农

毕业季 —— 回顾、收获与未来

大四总结

刚好在星球看到张哥布置的「2018上半年复盘作业」,仔细一想也差不多该写年度总结了。干脆就趁这个机会总结一下去年 9 月到今年 6 月的所做所想,也算给自己一个冷静思考的机会。 一条咸鱼的诞生 没有了上一年总结时的野心勃勃,在这差不多一年的时间里,我成功把自己变成了一条不折不扣的「咸鱼」,具体表现为:饮食作息全都随缘,很少主动学习提升,对待事情常常毫无所谓……特别是在学校的最后几个月...

ESP8266(Non-OS SDK) 驱动 waveshare 2.9 寸墨水屏(二)

程序移植、修改与测试

开始移植 上一篇文章简单介绍了了墨水屏原理、例程代码以及移植工作的可行性。这一步的目的是把前面在 STM32 跑的程序,完整地搬到 esp8266 上,达到相同的运行显示效果,Let’s get started! 移植好的程序源代码:esp8266-E-ink-network-subscriber/device/example/e-paper at master · shaoguoji/...

ESP8266(Non-OS SDK) 驱动 waveshare 2.9 寸墨水屏(一)

显示原理、源码分析及准备工作

随着屏幕的阵阵闪烁刷新、黑白字符图案浮现眼前,毕业设计总算有了起色。经历了几个下午的不懈努力总算把墨水屏驱动搞定,点亮的何止是小小的墨水屏,还有我骚动的心呐!一开始还想着从头啃芯片手册造轮子,最后由于时间紧迫 + 能力有限,于是想(tou)到(lan)把微雪提供的 STM32 例程移植到 8266。 由于都是纯 C 的代码,整个过程说不上十分艰辛,但也踩了不少坑:从最初对 8266 硬...

Linux 软链接与硬链接

文件访问,能软能硬?

说在前面 最近从常用命令开始学 Linux,看到 ln 命令时突然蹦出硬链接和软连接这两个概念,在阅读了一些的书籍和资料后,决定写篇文章整理记录一下思路。hard link 和 soft link 作为两种不同的文件访问方式,提供了灵活的文件共享特性。在讨论两者的区别之前,了解一点关于文件的背景知识很有必要。 数据访问 —— 从文件名到硬盘 我们总是对硬盘如何正确地储取文件感到好奇...

ESP32 DevKitC 编译烧写 AliOS Things

基于官方 Hello World 例程(Windows 环境)

本文介绍 Windows 下基于 AliOS Things 的 ESP32 应用开发流程,包括环境搭建、程序编译、固件烧写。 AliOS Things AliOS Things 是一款由阿里巴巴开发的轻量级物联网操作系统。具备极致性能,极简开发、云端一体、丰富组件(包括实时操作系统内核,连接协议库、文件系统、libc接口、FOTA、Mesh、语音识别)、安全防护等关键能力,并支...

原子(字节序列)、哈希表存储、散列函数

《C 语言接口与实现》读书笔记 —— 第三章

对比本书后面的内容来看,这章算比较轻松的,涉及到的函数也很少。 书里所谓的「原子」并没有「微小」、「原子操作」等意味,而是出于另一个目的 —— 作为字节序列的副本,这是典型的「替换思维」,用简单代替复杂。如同 MD5 能代表完整文件信息一样,原子能代表一串唯一的字节序列。 第三章 —— 原子 原子(atom)是一个指针,指向一个唯一的、不可变的序列,序列中包含零货多个字节(字节值...

除法二义性、抽象数据类型、不透明指针

《C 语言接口与实现》读书笔记 —— 第二章

第二章 —— 接口与实现 在 C 语言模块化编程中,每个模块由一个 .h 文件以及一个 .c 文件组成,在书中被称为模块的接口与实现。接口规定了模块做什么(拥有何种功能),实现提供了接口规定的功能。每个实现可能使用不同的算法和数据结构,但它们都必须合乎接口的规定。 客户程序(client)是使用模块的一段代码。客户程序导入接口,实现则导出接口。客户程序只需要看到接口即可。实际上,他们可能...

基于接口的设计、文学程序、风格、效率

《C 语言接口与实现》读书笔记 —— 前言、第一章

我又开始写读书笔记了 过去一年来也读过几本书,但读书笔记这事是一拖再拖。难得这段时间能静下心来啃书,决定恶补一下基础知识和提高一下 C 语言,并记录下读书过程中许多自认为有价值的东西。由于是笔记,会更倾向于「给自己看」,所以写出来的东西东拼西凑比较零散,难免会缺乏条理逻辑,但也会尽量考虑读者阅读体验(毕竟写东西的初衷还是给「未来的自己」看)。 关于本书 《C 语言接口与实现》(...

单片机也能 OO?—— 串口命令解析器的实现

C 语言对象化设计实例

内容简介 单片机工程师常常疑惑为什么 Linux 驱动框架要搞那么复杂的一套,殊不知这种「复杂」正是面向对象设计的精髓。对代码的高度抽象和封装可大大提高软件的复用性、可维护性。本文从一个简单例子 —— 51 单片机上的串口命令解析器程序出发,对比过程式与对象式思维差异,分享自己对 OO 的一点浅薄看法。 本文是学习宋宝华老师的《C语言大型软件设计的面向对象》课程后的一些收获。 ...

STM32 实现 MPU6050 数据读取与倾角检测

三轴陀螺仪 + 三轴加速度传感器「从入门到放弃」

前言 MPU6050 是一个很好玩传感器,在四轴、体感、计步等应用领域都能看到这小芯片的影子,其内部的结构、功能十分丰富,可玩度非常高。同时,对传感器采集到的数据进行分析还能得到许多信息,但此时的一些「数学小技巧」或许会让你抓狂,所以你会在网上疯狂查找资料,最终发现了本文。 然而很可惜,笔者也是一名数学渣渣(买东西找零都不会算的那种),所以这篇文章并不能教会你「卡尔曼滤波」、「协方差...