国际哥的独立博客

「你要明白,自由思考比畅所欲言更重要。」

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

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

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

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

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

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

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

C 语言对象化设计实例

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

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

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

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

实习这半年,我在想些啥?

大三 & 实习总结

前言 深夜码字,带着些许倦意翻看着一年来的日记,回顾大学的第三个年头,似乎比以往精彩了那么一点。 2017 年 2 月 21 日的早上,我拖着一箱衣服和几盒元器件,离开了学校,独自前往深圳实习,为了能开阔眼界,也希望提高自己的嵌入式底层开发技术,期待能在未来做出有价值的产品。在过去的半年中体验了不一样的生活,遇到过许多人也经历过许多事,对一些事物的看法也有改变,能记录下来总是好的。 从...

STM32F4 新建标准库函数工程

建好工程,代码撸起!!!

前言 在 STM32 开发中,库函数开发相比寄存器方式具有开发周期短、代码可读性好、便于移植等优点,而使用 Keil 环境的第一步就是新建工程。本文以 STM32F401CE 芯片为例,介绍使用标准库函数新建工程的步骤。 材料准备 STM32F4xx 固件库:STM32F4xx_DSP_StdPeriph_Lib_V1.4.0.rar Keil-MDK 一点耐心 ...

玩的就是心跳 —— 使用 PulseSensor 脉搏传感器测量心率

STM32 ADC 模块实战

内容简介 对于 arduino 来说,网上有大量关于 PulseSensor 脉搏传感器的资料,而其他单片机上的实例较少。本文使用 STM32F407 系列芯片的 ADC 模块,从硬件配置、简易心率算法编写到官方 Processing 上位机的使用,带你全方位玩转 PulseSensor,玩的,就是心跳! PulseSensor 脉搏传感器介绍 基本参数 ...

用 "%d\n" 要多读一个数? —— scanf() 函数的那些坑

C 语言温故而知新(二)

系列文章目录 数据的存储与表示 —— 所见非所得 - C 语言温故而知新(一) 用 “%d\n” 要多读一个数? —— scanf() 函数的那些坑 - C 语言温故而知新(二) 内容简介 今天在用 "%d\n" 进行 scanf() 数据读取时出现了很诡异的现象:必须多输入一个数才能结束!看了一下网上的分析都讲的比较简单,想起之前因为 scanf() 使用不当导致的死循环问...

数据的存储与表示 —— 所见非所得

C 语言温故而知新(一)

系列文章目录 数据的存储与表示 —— 所见非所得 - C 语言温故而知新(一) 用 “%d\n” 要多读一个数? —— scanf() 函数的那些坑 - C 语言温故而知新(二) 为什么要写这个系列? 很多人都觉得 C 语言好学,其实并不然。(你可以看看《C语言的迷题》)现在的这个社会更多地去关注那些时髦的技术,而忽略了这个流行了 40+ 年的 C 语言。一门技术如果能...

I2C 总线协议初探

STM32 I2C 接口外设学习笔记

I2C(Inter-Integrated Circuit)总线是由 PHILIPS(飞利浦) 公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。 前言 早在大一和班上大神谈理想的时候就听过 I2C,那时我还在用 51 点灯,而他调了一星期 ...