自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 LCD 显示原理与像素点详解

LCD(Liquid Crystal Display,液晶显示器)是嵌入式开发中最常见的显示设备之一。理解 LCD 的工作原理、像素点与显存的关系,是进行屏幕驱动开发的基础。本文将从像素点、分辨率、颜色格式、显存映射到 LCD 时序信号,逐步拆解 LCD 显示的核心概念。以 RGB888 为例,R、G、B 三个通道的取值范围均为 0-255。屏幕尺寸以英寸(inch)为单位,指屏幕左上角到右下角之间的对角线距离,屏幕分辨率是指横向像素点个数与纵向像素点个数的乘积,例如。对应屏幕左上角的像素点。

2026-09-28 20:08:07 168

原创 ARM day07 定时器与 UART 学习

示例 115200:UBIR = 999,UBMR = 43402。分母总和:UBMR + 1 = 43403,UBIR / 1000 = 0.999,43403 + 0.999 = 43403.999,配合 80M 参考时钟得到 115200 波特率。我们写的 getc() 就是轮询接收:不断查询接收状态位 USR2 bit0,判断是否收到字节,收到之后读取 URXD 寄存器。常用配置:115200-8-N-1,即 115200 波特率,8 位数据位,无校验(N-None),1 位停止位。

2026-09-22 18:08:12 131

原创 iMX6ULL ARM裸机 时钟与启动汇编学习

上电复位 → 汇编 _reset_handler → 设置 IRQ 栈 → 设置 System 栈 → 打开内核 IRQ 总开关 → BSS 清零 → 开启 I-Cache → 设置 VBAR 向量基地址 → 跳转 C 语言 main() → clock_init() 配置 PLL/PFD/根时钟、开启外设时钟 → 初始化外设、配置 GIC 中断 → 运行业务代码;PFD 计算公式:PLL2 (528M) 各路 PFD 输出:PFD = 528 × 18 / PFD_FRAC,FRAC 取值 12~35;

2026-09-21 17:28:14 168

原创 IMX6ULL ARM 裸机开发学习总结(Day03-Day04)

忘记开启外设时钟,GPIO 寄存器读写无效;引脚没有配置 IOMUXC 复用为 GPIO 功能;C 语言操作寄存器不加volatile,编译器优化导致硬件无反应;Makefile 外部工具相对路径错误,提示命令找不到;ld链接输出 elf 文件名与objcopy读取 elf 文件名不一致,生成空 bin 文件;烧录 SD 卡设备号写错,破坏本地磁盘数据。

2026-09-18 17:52:28 172

原创 ARM 架构与单片机基础学习总结

ARM 公司专注于 RISC 架构 CPU 的设计,采用 IP 授权模式与半导体厂商合作(如意法半导体的 STM32 系列芯片,搭载 ARM 设计的内核)。

2026-09-16 22:02:23 150

原创 51 单片机硬件知识点思维总结

一、频率与时间单位换算频率与时间互为倒数:例:2.1GHz,周期 T = 1 / (2.1 × 10⁹) ≈ 0.5ns51 常用晶振11.0592MHz:专门用于串口,方便得到标准波特率。

2026-09-10 18:59:49 150

原创 Linux 应用软件编程完整学习总结

文件用完必须 close,否则文件描述符泄露;标准 IO 缓冲区会导致数据没有立刻写入磁盘。fork 之后父子进程变量拷贝,互相独立,不能直接通信;线程共享全局变量,访问临界资源必须上锁。僵尸进程一定要回收;线程默认非分离属性,必须 join 或者 detach,否则线程资源泄露。共享内存速度最快,但没有同步机制,业务层必须做互斥保护。网络编程端口、IP 必须转换成网络大端字节序,否则通信异常。信号是异步通知,不能携带大量业务数据;SIGKILL 不能捕获、不能忽略。

2026-08-31 23:22:00 335

原创 Linux 进程与多任务编程学习总结

进程是程序的一次运行实例。程序是磁盘上静态的可执行文件;进程是操作系统分配资源(内存、CPU、文件描述符)的动态实体。PID:进程 ID,操作系统用来唯一标识进程。PPID:父进程 ID,标识是谁创建了当前进程。PCB(进程控制块):内核中保存进程全部信息的数据结构,包含 PID、PPID、内存映射、文件描述符、信号掩码、进程状态等。隐式声明警告:C 语言老标准,如果调用函数之前没有写函数声明或者头文件,编译器报这个警告。虽然可以运行,但高版本 gcc 会警告,工程中必须修复。函数头文件。

2026-08-28 22:42:56 393

原创 Linux 应用软件编程学习总结

对比项标准 IO文件 IO(系统调用)操作句柄FILE* 文件流指针int 文件描述符 fd来源C 标准库函数Linux 内核系统调用缓冲区自带用户态缓冲区,减少内核切换,效率高无用户层缓冲区,实时性高可移植性强,跨平台仅 Linux/Unix,可移植差适用场景普通文本、大文件读写硬件设备、驱动、需要实时读写场景。

2026-08-25 18:43:41 369

原创 Linux 应用软件编程 - 标准 IO 学习总结

w/w+ 打开会清空文件,修改原有文件用 r+。fread/fwrite 返回值是元素个数,不是字节数。fseek 只能定位,不能做文件插入,只能覆盖。文件用完必须 fclose,防止资源泄露。char 单字符;char[] 字符数组字符串;char* 字符串指针,不要写。fgets 最多读 size-1 字节,留位置放字符串结束符 '\0'。argc 参数计数包含程序名本身。

2026-08-21 18:48:32 304

原创 数据结构与算法完整学习总结

删除 / 插入结点时,要同时修改 ppre、pnext 两个指针域,容易写错指针顺序。:单向链表实现,用链表头做栈顶,入栈出栈都是头插、头删,效率 O(1)。API:创建栈、入栈、出栈、判空、获取栈顶元素、清空栈、销毁栈。C 语言:结构体、指针、malloc/free 动态内存分配。:相遇点指针、头指针同时一步一步走,再次相遇点就是环入口。API:创建、入队、出队、判空判满、获取队头元素、销毁。:符号匹配校验、回文字符串、程序回溯、撤销操作缓存。API:创建、插入、删除、查找、修改、遍历、销毁。

2026-08-20 19:34:25 584

原创 数据结构学习

数据结构是存储具备特定关系数据的集合,描述数据的组织、存储方式;程序设计 = 数据结构 + 算法。结点结构体 Node_t数据域data:存储业务数据;指针域pnext:存下一个结点地址,尾结点pnext=NULL。链表管理对象 Link_tphead:链表头结点指针;clen:实时记录链表结点总数。int data;}Node_t;int clen;}Link_t;业务数据结构体Data_t:自定义存储内容(示例:学生姓名、年龄、分数);结点DNode_tdata数据域 +ppre。

2026-08-16 21:26:42 203

原创 基于Linux环境的C语言五子棋项目学习总结

五子棋是规则简洁、普适性强的经典双人策略棋类游戏。本次项目以 C 语言为开发基础,在 Ubuntu Linux 系统环境下完成可视化五子棋游戏的全流程开发,目标是实现棋盘渲染、双人交替落子、合法性校验、自动胜负判定、结果弹窗反馈等完整游戏功能。项目以实战为导向,一方面巩固 C 语言二维数组、函数封装、逻辑控制等核心语法知识,另一方面熟悉 Linux 操作系统的基础操作、程序编译与调试方法、图形化库的环境配置与调用,完成从语法学习到完整项目落地的能力跨越。

2026-08-12 17:33:11 163

原创 C语言 struct 结构体总结

int age;int score;} s1, s2;} s3;

2026-08-06 18:16:01 172

原创 C语言指针学习

格式:基类型 *变量名;基类型:指针指向空间存储的数据类型(int/char/float/void 等),决定解引用时读取多少字节。:类型标识,说明该变量是指针,不是普通变量。示例int *pint;// 指向 int 类型的指针char *pch;// 指向 char 类型的指针// 同时定义两个 int 指针。

2026-08-05 20:53:22 148

原创 C语言学习总结

内存每字节拥有唯一编号,编号叫地址;指针 = 地址。指针变量:专门存放内存地址的变量,64 位系统固定占 8 字节,32 位占 4 字节。基类型 *指针名;基类型决定解引用时读取多少字节(int读 4 字节,char读 1 字节)。

2026-08-03 19:16:24 229

原创 C语言函数学习

返回值类型 函数名(形参列表)函数体;返回值支持等基础类型、构造类型;void空类型:函数执行完毕无返回结果,可省略return或写return;;非void函数必须用return返回对应类型值,否则返回随机垃圾值。函数名遵循标识符命名规则,建议见名知意,多用动宾命名(print_star形参列表数据类型 形参名, 数据类型 形参名...;作用:函数执行依赖的外部条件,仅函数内部有效。函数直接 / 间接调用自身,本质等价循环。逻辑;

2026-07-31 18:54:15 181

原创 C语言字符型数组、二维数组、函数学习

char 数组名[常量];占用 32 字节内存作用:存储单个 / 多个字符,存储字符串必须预留'\0'结束符返回值类型 函数名(形参列表) { 函数体;返回值:int/char/float/double/void;void代表无返回值函数名:标识符,见名知意,动宾命名(get_maxprint_arr类型 变量名, 类型 变量名,函数执行所需外部条件。

2026-07-30 18:50:40 228

原创 C语言基础学习

goto语句及后续内容总结。

2026-07-29 18:31:38 238

原创 C语言基础学习-循环结构

条件不成立,退出循环执行后续代码。表达式 2:循环判断条件,结果为真(非 0)执行循环体;表达式 3:更新变量,让循环逐步趋于结束,每次循环体执行完后运行。循环头部(for/while)后误加分号,导致循环体空执行;为真 → 执行循环体 → 执行表达式 3 → 回到步骤 2。控制循环终止的更新代码写在循环内部。为假 → 跳出 for 循环,执行循环外代码。初始化写在循环外部,变量更新写在循环体内。,加分号代表循环体为空语句,逻辑失效。末尾禁止加分号,加分号会造成空循环。忘记更新循环变量,造成无限死循环;

2026-07-27 18:40:10 291

原创 C 语言流程控制学习

条件成立执行语句 1,不成立执行语句 2。要点:if 可单独存在,else 不能脱离 if 单独使用;if 后不能加分号(会截断语句)。程序自上而下、逐行依次执行,无跳转、无判断。示例流程:输入三角形三边 → 计算周长 → 计算半长 → 计算面积 → 输出结果。根据表达式真假,选择执行不同代码块;条件为真执行大括号代码,为假直接跳过。

2026-07-25 18:50:38 418

原创 C语言基础学习

=*=等,属于双目赋值运算符,运算结合方向。

2026-07-24 18:21:01 361

原创 C语言基础学习

常量、变量通过运算符组合形成表达式,所有表达式均有结果与对应数据类型。

2026-07-23 18:17:35 363

原创 c语言基础学习

采用科学计数法存储(符号位 + 指数位 + 尾数位)。C语言数据类型主要分为:基本类型、构造类型、指针类型。开头的格式控制符时,会替换为对应变量的值。用于向终端打印内容,遇到。

2026-07-22 18:53:21 323

原创 Linux基础指令学习

在 Linux 中,终端是与系统交互的主要窗口。Ctrl + '-'

2026-07-21 18:37:31 336

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除