嵌入式学习总结DAY1
一、今日学习目标今天正式进入嵌入式底层学习。主要学习二进制与 bit 概念位操作Bit Operation位掩码Mask寄存器Register的基本概念CPU 如何通过寄存器控制硬件C语言位操作和嵌入式编程的联系二、核心知识总结1. 计算机底层只有 0 和 1计算机硬件本质上通过电平状态工作高电平 → 1低电平 → 0一个 bitbinary digit表示一个二进制位。例如101101108个bitbit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 1 0 1 1 0 1 1 0重要最右边永远是 bit0。三、为什么嵌入式需要位操作普通软件更多关注int a100;嵌入式需要控制硬件例如一个8位寄存器bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 LED MOTOR FAN KEY UART ...每一个 bit 可能对应一个硬件功能。所以位操作就是精准控制硬件开关。四、四种核心位操作1. 与运算 AND符号规则111 其他0用途清除某一位例如清除 bit3REG ~(13);过程13 00001000 取反 11110111与原数据xxxx xxxx 11110111 ↓ bit3变0 其他保持2. 或运算 OR符号|规则有1就是1。用途设置某一位例如设置 bit5REG | (15);过程15 00100000效果bit5变1。3. 异或 XOR符号^规则相同为0不同为1。用途翻转某一位。例如REG ^ (13);如果bit30→1 1→04. 移位操作左移例如15表示00000001 ↓ 00100000也就是2^532常用于生成位掩码。右移例如00010000 4 00000001五、三个必须背熟的寄存器公式设置某位REG | (1n);含义第n位置1其他位保持。清除某位REG ~(1n);含义第n位置0其他位保持。翻转某位REG ^ (1n);含义第n位取反。六、寄存器概念今天最大的概念寄存器不是普通变量。普通变量int a;存储RAM寄存器实际上是特殊地址 硬件功能例如GPIO输出寄存器地址 0x40020014CPU写这个地址↓硬件动作发生。所以寄存器是 CPU 和硬件交流的窗口。七、今天练习中的主要错误总结错误1bit编号混乱错误认为00000100是 bit3。实际上00000100 bit2正确00000001 bit0 00000010 bit1 00000100 bit2 00001000 bit3错误2混淆 | 和 错误REG0x20;问题会覆盖整个寄存器。例如原10101100执行00100000其他控制位全部丢失。正确REG | (15);只修改 bit5。错误3清零写法错误错误REG (13);实际效果只保留bit3。正确REG ~(13);八、今天掌握程度评价当前水平已掌握✅ 二进制基础✅ bit概念✅ AND/OR/XOR✅ 左移右移✅ 位掩码思想✅ 寄存器基本作用需要加强⚠️ bit编号熟练度⚠️(1n)快速反应⚠️ 清零、设置、读取三种操作区分九、今日代码核心// 设置bit5 REG | (15); // 清除bit5 REG ~(15); // 翻转bit5 REG ^ (15); // 判断bit5 if(REG (15)) { // bit5为1 }今日一句话总结嵌入式的本质是通过 C 语言操作寄存器再通过寄存器控制硬件位操作就是连接软件和硬件的桥梁。以下是可以入门的练习题一、基础概念题C语言 位操作1.将十进制数字转换为二进制132.下面哪个表示 bit3A.00001000B.00000100C.000100003.计算1010 1100结果4.计算1010 | 0101结果5.计算1010 ^ 1100结果二、寄存器操作题6.现在REG 0b00000000;要求打开 bit4。写出 C 代码7.现在REG 0b11111111;要求关闭 bit2。写出 C 代码8.假设bit0 LED bit1 BUZZER初始REG00000000执行REG | (10); REG | (11);最终REG?9.计算REG10101010执行REG ^ (13);结果10.解释为什么下面代码在嵌入式中可能危险REG 0x01;三、综合考试题Day1小测试1.设置寄存器 bit62.清除寄存器 bit73.读取 bit3 状态写判断代码。4.一个寄存器bit0 LED bit1 FAN bit2 MOTOR要求打开LED打开MOTOR关闭FAN写代码。5.解释为什么REG | (15);比REG 0x20;安全Day1练习答案与解析一、基础题答案1.13转换二进制答案1101原因13841 11012.bit3答案A00001000位编号bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 0 0 0 0 1 0 0 03.逐位111 010 100 000结果10004.1010 | 0101规则有1就是1。结果11115.1010 ^ 1100不同为11010 1100 ---- 0110答案0110二、寄存器操作答案6.打开 bit4答案REG | (14);原因14 00010000将bit4置1。7.关闭 bit2答案REG ~(12);原因12 00000100取反11111011AND后bit2变0。8.执行REG | (10); REG | (11);第一次00000001第二次00000011答案00000011LED和BUZZER同时打开。9.原10101010bit300001000异或10101010 00001000 --------- 10100010答案1010001010.错误REG0x01;原因这是整体覆盖。例如原10101100执行00000001结果其他控制位全部丢失。嵌入式通常需要REG | (1n);只修改目标位。三、考试题答案1.设置bit6REG | (16);2.清除bit7REG ~(17);3.读取bit3if(REG (13)) { }因为如果bit3为1结果非0。4.答案REG | (10); // LED打开 REG | (12); // MOTOR打开 REG ~(11); // FAN关闭5.答案因为REG | (15);属于读-修改-写(Read Modify Write)只改变bit5其他位保持。而REG0x20;直接覆盖整个寄存器。Day1错误记录你的个人复盘今天你的主要错误问题原因bit3判断错误bit编号不熟清零写错混淆 和 ~设置多个bit失败没有意识到异或计算错误bit位置定位不稳定明天复习重点熟练10 11 12 ... 17熟练| ~ ^

相关新闻

SC气缸规格型号大全及价格区间 河南开龙盘点常见行程 50x100/80x200热销款

SC气缸规格型号大全及价格区间 河南开龙盘点常见行程 50x100/80x200热销款

SC气缸行业基础认知科普SC气缸是目前气动自动化系统中应用范围最广的通用型直线执行元件,属于拉杆式双作用气动执行元件,依靠压缩空气作为动力源驱动活塞杆做直线往复运动,是多数自动化生产设备完成工位动作的核心部件之一。SC气缸的规格型号…

2026/10/12 4:56:53 阅读更多 →
【C++三方组件】RocksDB:写多读少的嵌入式 KV

【C++三方组件】RocksDB:写多读少的嵌入式 KV

【C三方组件】RocksDB:写多读少的嵌入式 KV 【摘要】:RocksDB 是 Facebook 从 LevelDB 演化出的嵌入式持久 KV,用 LSM-tree 把写路径变成顺序追加:先写内存 memtable 与 WAL,再批量落成不可变 SST,后台 com…

2026/10/12 4:55:53 阅读更多 →
2026五款树洞隐私终极横评|不绑手机、不读通讯录、不存聊天!全网仅两家做到后台零记录

2026五款树洞隐私终极横评|不绑手机、不读通讯录、不存聊天!全网仅两家做到后台零记录

2026年树洞平台乱象依旧泛滥,很多用户踩坑的核心原因只有一个:误把“匿名显示”当成“真隐私保护”。看似无人知晓的匿名倾诉,实则后台绑定手机号、偷偷读取通讯录、全程储存聊天记录,你的每一段emo心事、私密秘密,都被…

2026/10/12 4:55:53 阅读更多 →

最新新闻

DeepSeek开源算力地基:FlashMLA与DeepEP如何加速国产大模型?

DeepSeek开源算力地基:FlashMLA与DeepEP如何加速国产大模型?

先说明一下我的第一反应:看到“致敬,DeepSeek 最新开源的不是模型,是国产算力的地基”这个标题,我以为是又一个大模型权重开源了。结果点进仓库一看,里面没有模型文件,躺着的全是 FlashMLA、DeepEP、DeepGE…

2026/10/12 7:08:08 阅读更多 →
NumPy随机函数与广播机制:维度对齐、代码实战与踩坑全解

NumPy随机函数与广播机制:维度对齐、代码实战与踩坑全解

【day 48】随机函数与广播机制,打卡到这个组合的时候,我明显感觉身边不少同学开始卡壳了:随机函数单独用没问题,广播规则单独看也能理解,但真到写代码的时候,要么随机生成的数组形状对不上,要么…

2026/10/12 7:08:08 阅读更多 →
MTCNN人脸检测详解:P-Net、R-Net、O-Net三级网络训练与部署实战

MTCNN人脸检测详解:P-Net、R-Net、O-Net三级网络训练与部署实战

简介:面向深度学习和计算机视觉研究者,这份完整代码基于MTCNN级联卷积网络实现人脸检测,清晰覆盖P-Net候选框提议、R-Net边界框精修、O-Net关键点定位的完整流程。包体共80个文件,以Python源码为核心,包含48个py文件&a…

2026/10/12 7:08:08 阅读更多 →
物联网通信技术选型与架构设计:从链路预算到协议栈的工程实践指南

物联网通信技术选型与架构设计:从链路预算到协议栈的工程实践指南

干了十几年通信,最明显的感觉是:打电话的人越来越少,问"能不能帮我把这个箱子里的定位数据传回来"的人越来越多。物联网这个概念被炒了很多年,别人看到的是智能家居、智慧城市、大风口,我看到的是另一件事—…

2026/10/12 7:08:08 阅读更多 →
MyBatis查询功能全解析:从动态SQL到性能优化的实战指南

MyBatis查询功能全解析:从动态SQL到性能优化的实战指南

项目标题: MyBatis各种查询功能用到一定年头你就会发现,MyBatis的查询功能说难不难,说简单也绝不是写个select标签就完事。日常开发里,动态条件、分页、多表嵌套、批量操作,任何一个场景都能写出好几种不同写法,而每种…

2026/10/12 7:08:08 阅读更多 →
老毛桃UEFI启动盘v7.0:稳过Secure Boot,原生支持NVMe与Win11架构识别

老毛桃UEFI启动盘v7.0:稳过Secure Boot,原生支持NVMe与Win11架构识别

简介:老毛桃U盘启动盘制作工具(UEFI版 装机版)v7.0是一款面向电脑初学者与系统维护人员的轻量级系统辅助工具,专为快速制作兼容UEFI与传统BIOS的U盘启动盘、安装原版Windows系统及执行PE环境下的故障排查而设计。资源包共2个文件&…

2026/10/12 7:07:08 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →