核心目标:搭建 C 语言开发环境,理解嵌入式 C 程序基本结构,成功编译运行 2 个实操程序(嵌入式开发 90% 基于 C 语言,第一天先打通 “写代码→运行” 的全流程)。
一、环境搭建(30 分钟,新手必看,零踩坑)
嵌入式开发后期会用 Keil MDK,但第一天先选「Dev-C++」(安装简单、无复杂配置,专注语法学习)。
- 下载安装:浏览器搜 “Dev-C++ 5.11 中文版”,从官网或可靠平台下载,安装时默认路径即可,勾选 “添加到系统 PATH”。
- 简单配置:打开后点击「工具→编译选项」,勾选 “编译时加入以下命令”,输入
-std=c99(支持 C99 标准,嵌入式开发常用),其他默认。 - 验证环境:新建文件(文件→新建→源代码),随便输一行
int main(){return 0;},点击工具栏「运行」(绿色三角),能弹出黑色控制台窗口就说明没问题。
二、嵌入式 C 程序核心结构(40 分钟,记牢这 3 个部分)
嵌入式 C 程序和普通 C 程序核心一致,但更注重 “简洁、高效”(嵌入式硬件资源有限),先搞懂这 3 个必含部分:
- 头文件包含:
#include <stdio.h>(嵌入式中常用标准库 + 硬件相关头文件,今天先学标准库),作用是 “调用已写好的功能”(比如 printf 打印功能)。 - main 函数:
int main(void)是程序入口(嵌入式程序也必须有且只有一个 main 函数,硬件上电后从这开始执行),void表示无参数,int表示返回值。 - 语句与返回值:每条语句结尾必须加
;(嵌入式开发中漏写会直接编译报错),return 0;表示程序正常结束(嵌入式中可能返回给硬件系统,标记运行状态)。
三、实操 1:写第一个嵌入式风格 “Hello” 程序(30 分钟,动手!)
这是嵌入式开发中 “验证环境 + 熟悉结构” 的标准入门程序,跟着敲代码(别复制,手动敲加深记忆):
c
// 头文件:调用标准输入输出功能(printf就在这里)
#include <stdio.h>
// 程序入口:嵌入式程序必须以main函数开头
int main(void)
{
// 打印语句:嵌入式中常用printf调试(后期会换成硬件串口打印)
printf("Hello Embedded World!\n"); // \n是换行符,让输出更整齐
printf("今天开始嵌入式之旅~\n");
// 嵌入式程序通常不会主动退出,这里用while(1)模拟“硬件持续运行”
while(1)
{
// 空循环:后续会在这里加硬件控制代码(比如LED闪烁),今天先留空
}
return 0; // 逻辑上不会执行到这,但语法必须有
}
- 操作步骤:粘贴 / 敲入代码→保存文件(后缀名必须是
.c,比如first_embed.c)→点击「运行」→看到黑色窗口打印两行文字,就成功了! - 关键说明:
while(1)是嵌入式核心循环(硬件上电后一直运行,不会退出),后期所有硬件操作(比如按键检测、数据采集)都在这个循环里。
四、实操 2:变量与简单运算(40 分钟,嵌入式开发基础中的基础)
嵌入式开发中经常要处理 “传感器数据、硬件状态”,必须先掌握变量和运算,写一个 “温度计算” 程序(模拟嵌入式中 “采集数据→运算” 的逻辑):
c
#include <stdio.h>
int main(void)
{
// 定义变量:嵌入式中优先用“占用内存小”的类型(int占4字节,char占1字节)
int temp_raw = 256; // 模拟传感器采集的原始数据
float temp_real; // 真实温度值
// 运算:嵌入式中常用简单算术运算(避免复杂运算占用资源)
temp_real = (temp_raw / 10.0) + 2; // 模拟传感器校准公式
// 打印结果:嵌入式中常用printf输出调试信息
printf("传感器原始数据:%d\n", temp_raw);
printf("校准后温度:%.1f℃\n", temp_real); // %.1f表示保留1位小数
while(1); // 持续运行
return 0;
}
- 运行结果:黑色窗口会显示 “传感器原始数据:256”“校准后温度:27.6℃”,能正确输出就说明变量和运算都掌握了。
- 重点:嵌入式中变量要 “按需定义”,不要定义用不到的变量(浪费内存),常用数据类型:
int(整数)、char(字符 / 字节)、float(浮点数)。
五、第一天必掌握的 2 个关键知识点(10 分钟,自测是否过关)
- 嵌入式 C 程序必须有「头文件 + main 函数 + while (1) 循环」(硬件持续运行的核心)。
- 变量定义要遵循 “最小内存原则”(嵌入式硬件 RAM/ROM 有限,比如能用水
char就不用int)。
-1



被折叠的 条评论
为什么被折叠?



