Foundation / C language

把第一行 C 代码,
真正跑起来。

C 语言会一路陪你走到 STM32。从第一个程序开始,逐步认识数据、运算、分支和循环,再学习函数、数组、指针、结构体与位运算。

第 01–11 课已开放 · 建议按顺序学习,练习后再前进

hello.cLESSON 01 / OPEN
#include <stdio.h>

int main(void)
{
    printf("Hello, world!\n");
    return 0;
}
OUTPUTHello, world!

Course map

按一个个能验证的小目标前进

从编译运行走向指针与位操作。每节课包含示例、解释、排错与练习。

01 / 已开放

第一个程序与编译流程

创建 hello.c,逐行理解代码,用 GCC 编译、运行并主动读一次报错。

完成信号:能独立改动输出、重新编译,并解释发生了什么。
02 / 已开放

变量、类型与数据

让程序保存测量值;学习声明、初始化、输出格式,以及类型大小为什么要实测。

完成信号:能安全地修改变量,并解释输出格式与实际类型的关系。
03 / 已开放

表达式与运算

验证算术运算、整数除法、余数、类型转换和运算顺序。

完成信号:预测结果并说出除法和类型的条件。
04 / 已开放

条件与分支

用比较、逻辑表达式和条件语句表达选择,检查边界与输入。

完成信号:用边界值解释每条分支。
05 / 已开放

循环与重复任务

使用 for、while 和 do/while 处理重复任务,检查起点与终点。

完成信号:跟踪循环状态,避免多一次或少一次。
06 / 已开放

函数与程序拆分

使用函数声明、参数和返回值,把计算拆成明确的小任务。

完成信号:解释调用过程及按值传递。
07 / 已开放

数组与字符串

保存与遍历一组数据,认识下标、终止符和缓冲区边界。

完成信号:写出合法下标和字符串所需容量。
08 / 已开放

多文件与调试

理解 .h 与 .c 分工,编译链接并用 GDB 观察程序。

完成信号:独立编译多个文件并观察变量。
09 / 已开放

指针与地址

认识对象地址、指针与解引用,理解空指针、数组传参和生命周期。

完成信号:画出变量与指针的关系并安全地修改值。
10 / 已开放

结构体与枚举

把相关数据组织成结构体,用枚举表示状态并理解成员访问。

完成信号:解释结构体传参、状态与平台布局差异。
11 / 已开放

位运算与掩码

用无符号变量模拟标志位,练习设置、清除、翻转和检测。

完成信号:解释掩码、移位边界及硬件寄存器的特殊语义。

How to learn

每一课都按这三步走

读懂解释只是开始,真正的完成证据是你改过代码、看过结果,也能说清为什么。

01

先预测

读代码前先猜运行结果,写下理由;如果猜错了,恰好找到最值得学的地方。

02

亲手改

输入并编译自己的文件。只改一处,重新编译,再对照终端输出。

03

讲得清

不用照抄课文,能用自己的话解释关键代码和报错,才进入下一课。

Next layer

把 C 的数据和每一位连到硬件。

初学者从第 01 课开始,按目录依次学习。完成前八课后,继续学习指针、结构体和位运算;这些基础有助于以后理解开发板上的数据和寄存器。