自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 项目分享| 用树莓派制作国际空间站追踪器

在这个项目中,将会为大家展示如何使用 Raspberry Pi、ePaper Display、ProtoStax Enclosure 和一些 Python, 跟踪和显示国际空间站 (ISS) 的当前位置及其随时间变化的轨迹。树莓派 3 型号 B+:也可以使用 Raspberry Pi Model 4B树莓派4 B型:也可以使用 1B+/2B/3B/3B+用于 Raspberry Pi B+ / 4B 型的 ProtoStax 外壳项目通过Waveshare 电子纸显示器显示显示国际空间站的位置图像。

2022-08-25 15:25:09 729

原创 C语言数组在内存中是怎样表示的?

最近群里有位同学问“C语言中数组在内存中是怎样表示的”,今天我们就来聊一聊这个话题。开局一张图:如上图所示,这是经典的Linux进程内存布局,通常我们使用的数据存在这样几个地方:栈区,Stack全局区,Global堆区,Heap接下来,我们分别看一下C语言中的数组在这几个区域是怎样表示的(注意:这里的机器是x86 64位)。

2022-08-24 16:09:28 1616 1

转载 ARM 汇编入门指南(2) 【详解,结尾有资料】

在写下这14句汇编以后,我们就可以使用clang编译器将其编译成可执行的二进制文件:然后我们可以将它放到任何一台ARM64CPU的机器,如大部分的Android机器,或者树莓派等单片机上运行了,我们就可以看见学习一门语言最亲切的打印语句了,这里我们使用的是Android自带的LLDB调试器在真机上运行的:到此你就基本学会了如何用ARM汇编手写一个helloworld程序,希望这篇文章真的能带大家走进ARM汇编的世界里一起学习,路漫漫兮。

2022-08-22 18:00:00 606

转载 ARM 汇编入门指南(一)【详解,结尾有资料】

本篇文章的目的是希望以一个例子的方式,能够不那么枯燥的的给大家简单介绍一下Android或iOS这些移动终端上ARM架构的CPU是如何执行ARM汇编指令的。如果说程序员在学习任何一门语言的起点都是从学习写helloworld程序开始的,那么本篇文章希望的就是成为你学习ARM汇编的那第一篇入门教程,手把手的带着你用ARM汇编手写一个helloworld程序。

2022-08-22 17:00:00 2185 1

原创 物联网中的智能网关

现有实现方式中最典型的代表就是工业控制计算机(简称工控机),生产厂商将各种接口进行模块(卡)化设计,将其与通用的计算机主机模块结合,就实现了通用计算机接入特定通信系统的目的,客户购买时根据需要选择接口模块(卡)和满足处理能力的通用计算机主机就可以方便的搭建出数据网关的硬件平台,在此基础上再开发专用的数据处理软件,就能够实现强大的数据分析、存储、转发等功能。现代计算机技术的发展带来的丰富的接口选择和强大的计算能力恰好为此提供了条件,一台具备相应接口的,安装了相应数据处理软件的计算机,就是一个数据网关。

2022-08-21 15:15:00 1943

原创 Linux OOM 基本原理解析

Linux内存管理是一门庞大的学问,内存回收作为其中的一部分也是十分复杂的,我们今天给大家大概介绍了内核的内存回收概览,并详细的介绍了OOM Killer机制,也算是抛砖引玉让大家对内存回收有个初步的认识。

2022-08-20 12:00:00 1421

转载 从零开始,教你写FreeRTOS双向链表

迷你节点也是节点,但迷你节点仅用于标记链表的末尾和挂载其他插入链表中的节点,用户是用不到迷你节点的,链表头节点和普通节点可以不一样。下面这个头即使链表定义,也是链表头,链表头节点和普通节点可以不一样。节点在FreeRTOS中叫做链表项。

2022-08-19 15:34:27 615 1

原创 嵌入式开发中的滤波器设计

如下图,是频率响应图的一个例子。为了确定滤波器频率响应的细节,我们需要在数学上分析电阻(R)和电容(C)之间的关系,我们还可以操纵这些值,以设计满足精确规格的滤波器。如果我们仔细绘制我们在本文前面设计的滤波器的频率响应,我们将看到5kHz时的幅度响应基本上是0dB(即几乎为零衰减),500kHz时的幅度响应约为-14dB(对应于0.2的增益)。二阶RC滤波器的行为不符合预期,因为两个滤波阶段不是独立的,因此不能简单地将这两个滤波器连接在一起,并将电路分析为一阶低通滤波器叠加一个相同的一阶低通过滤。.....

2022-08-16 16:20:51 1404

原创 Linux常用系统性能监控命令

当没有参数时,vmstat则显示系统启动以后所有信息的平均值。有delay时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个delay时间段的平均信息。当系统有多个CPU时,输出为所有CPU的平均值。有interval时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个interval时间段的平均信息。当没有参数时,iostat则显示系统启动以后所有信息的平均值。与CPU有关的输出的含义。首先安装之,源码在这里下, 这里使用的版本是1.92。(2)CPU使用的情况。...

2022-08-12 13:45:24 729

原创 单片机人机交互--矩阵按键

按键是一种常开型按钮开关,与单片机的常见接法如图所示。按键未按下时两个触点断开,单片机I/O口输入高电平;当按键闭合时,I/O口输入低电平。

2022-08-10 14:49:01 901

原创 嵌入式软件打log的一些心得

以前在H时见得太多因为日志不全导致的麻烦,前方的客户经理不断向客户恳求宽限时间,维护人员不断地在客户环境找出蛛丝马迹,后方领导也不断地调配资源来跟踪问题,后方测试人员不断地测试,尝试问题复现,后方开发人员就不断地看代码。因为程序员大多喜欢copy-paste,如果你不加文件名和行数,某程序员copy了你的代码,修改了点,出错了,到时候把你拉下水。日志是反映问题的,有不同紧急程序的问题,自然有不同的日志级别。6、操作数据库时,把相应操作的IP,端口,库,用户名,sql语句和错误打印出来。...

2022-08-10 13:38:53 750

原创 Python 的指针,有必要理解它

与C,C++这种静态语言相比,Python是自动管理内存的,它采用“引用计数”的方式管理内存,即Python内部会记录对象有多少个引用,如果某个对象的引用计数大于0,该对象就会一直存放在内存中;当对象的引用计数为0时,就会被垃圾回收机制回收。这也是Python的方便之处,开发者无需考虑提前为对象分配内存,使用完后也无需手动释放内存。但了解Python内部是如何管理内存,也很有必要。你考虑过is和==有什么不同吗?或者为什么要使用深拷贝?你有考虑过Python是如何操作对象的吗?这篇文章或许会给你一些启示。.

2022-08-09 19:30:00 5587 1

原创 linux中的交互式进程查看命令htop

在 htop 中,可以垂直滚动查看完整进程列表,水平滚动查看完整命令行。在 Rocky Linux/AlmaLinux 上安装 Htop。在 Linux Mint 上安装 Htop。在 CentOS 8/7 上安装 Htop。在 Arch Linux 上安装 Htop。在 RHEL 8/7 上安装 Htop。在 OpenSUSE 上安装 Htop。在 Debian 上安装 Htop。在 Ubuntu 上安装 Htop。在 Fedora 上安装 Htop。在 Gentoo 上安装 Htop。...

2022-08-09 14:45:00 592

转载 浅谈单片机Boot的几种自刷新方式

重新上电后,如图2-b,由于启动地址1的内容是在刷新开始就被更新了是有效的,程序会进入CB运行,但是CB不完整,必然运行出错,程序不会跳入ReBoot里,从而不能再刷新(即刷死)。如图4-b,当Sec1的逻辑检测到CB_ValidFlg有效时,即认为Boot刷新完成,则程序控制跳转入Sec2里,此时由于App(ReBoot)末尾的App_ValidFlg是无效的,程序并不会跳转入ReBoot里,接下来就可以刷入新的App了。即启动地址1起了Boot有效性标志的作用(最先擦,最后写),如图3-b所示。...

2022-08-08 18:45:00 1472

转载 学习单片机AD采样必知的十大滤波算法

我们都知道,单片机的主要作用是控制外围的器件,并实现一定的通信和数据处理。但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算。所以,今天将给大家介绍十种常见的滤波算法,希望这篇文章能对大家有所帮助。...

2022-08-08 13:58:07 3585

转载 图像传感器何以推动嵌入式视觉技术的发展?

在这些情形下,减低图像传感器在低亮度环境下的噪声便能实现更低的功耗。但比图像传感器更重要的是,成像模块形式的拿到即可快速应用的板级解决方案的出现,为进一步优化尺寸、重量、功耗和成本铺平了道路,并通过来自消费市场的成本可接受的经过深度学习优化的图像信号处理器,大幅降低开发成本和时间,而不增加额外的复杂性。,例如,通过定义合并/共享相同的像素结构以获得稳定的光电性能,通过相同的光学中心来共享单个前端结构,以及兼容的PCB组件 (方法是尺寸兼容或针脚兼容),从而加快评估、集成和供应链,如图1所示。...

2022-08-05 08:15:00 372

转载 Python 中如何快速实现一个线程池?最全(2)

由于 map 内部还是使用的 submit,然后通过 future.result() 拿到返回值,而耗时最长的函数需要 3 秒,因此这一步会阻塞 3 秒。用来控制线程池内的线程数量,我们可以将最大的线程数设置为2,那么当第三个函数进去的时候,就不会执行了,而是处于暂停状态。唯一的区别是,此时不需要再调用 result 了,因为返回的就是函数的返回值。上面在获取返回值的时候,是按照函数的提交顺序获取的。假设我们往线程池提交了很多个函数,如果希望提交的函数都执行完毕之后,主程序才能往下执行,该怎么办呢?....

2022-08-04 19:15:00 566

转载 Python 中如何快速实现一个线程池? 最全(1)

函数的执行状态什么的,都通过 future 来查看,当然也可以给它绑定一个回调,在函数执行完毕时自动触发。这个 Future 对象里面就包含了函数的执行状态,比如此时是处于暂停、运行中还是完成等等,并且函数在执行完毕之后,还会调用 future.set_result 将自身的返回值设置进去。但这五个函数是并发执行的,future2, future3, future4 由于只休眠了 2s, 4s, 3s,所以肯定会先执行完毕,然后执行 set_result,将返回值设置到对应的 future 里。...

2022-08-04 19:00:00 421

原创 总结嵌入式C语言难点(2部分)

C语言提供了丰富的预处理机制,方便了跨平台的代码的实现,此外C语言通过宏机制实现的数据和代码块替换,字符串格式化,代码段切换,对于工程应用具有重要意义,下面按照功能需求,描述在C语言运用中的常用预处理机制。嵌入式C语言在处理硬件物理地址,位操作,内存访问,都给予开发者了充分的自由,通过数组,指针以及强制转换的技巧,可以有效减少数据处理中的复制过程,这对于底层是必要的,也方便了整个架构的开发。#error,#warning用于用户自定义的告警信息,配合#if,#ifdef使用,可以限制错误的预定义配置。...

2022-08-02 16:09:52 1042

原创 总结嵌入式C语言难点 (1部分) 【结尾有资料】

指针占有的空间与芯片的寻址宽度有关,32位平台为4字节,64位为8字节,而指针的加减运算中的长度又与它的类型相关,如char类型为1,int类型为4,如果你仔细观察上面的代码就会发现par的值增加了8,这是因为指向指针的指针,对应的变量是指针,也就是长度就是指针类型的长度,在64位平台下为8,如果在32位平台则为4,这些知识理解起来并不困难,但是这些特性在工程运用中稍有不慎,就会埋下不易察觉的问题。从堆上分配,亦称动态内存分配。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。...

2022-08-02 15:01:23 424

原创 单片机遥控开关系统设计(结构原理、电路、程序)

本设计提出了一种基于单片机的遥控开关系统。通过对样机的测试结果表明,本系统采用单片机进行遥控系统的应用设计,具有编程灵活多样,操作码个数可随意设定等优点。一般设备系统采用专用的遥控编码及解码集成电路。此方案具有制作简单,容易等特点,但由于功能键数及功能受到特定的限制,只适合用于某一专用电器产品的应用,应用范围受到限制。而本系统消除了此问题,智能化大大提高。通过对样机的调试运行,节能效果很好,具有极其广泛的应用价值和应用前景。1 引言随着电子技术的飞速发展,新型大规模遥控集成电路的不断出现,遥控技术有了日新月

2022-08-01 15:25:21 4975

转载 零基础如何学习单片机,一位入门者的进阶路径,可参考

比如SPI,我用它的时候就只是很简单的移植程序(在某宝买回来的模块,客服都会顺便把例程给你了),看懂了例程,然后就可以按自己的想法修改程序了,根本没吃透SPI,但是对SPI有了一个感性的认识,回过头来再总结,联想自己做项目遇到的技术难题,就会发现是某个知识点不知道从而下不了手而已。对了,光看资料是不够的,因为资料是非常凌乱的,你根本不知道从哪开始看,这个时候就很有必要买一本关于单片机的书,因为讲技术的书籍都是整理好的,你做什么模块,就看那一章节,边做实验边看书边看资料,学习是非常快的。...

2022-07-31 15:30:00 4523

转载 C语言中指针没那么难~(2)【文章结尾有资料】

对于函数func来说,函数的名称就是函数代码区的常量,对它取地址(&func)可以得到函数代码区的地址,同时,func本身也可以视为函数代码区的地址。主函数中,把一个数组的首地址与数组长度作为实参传入指针函数pfun里,把指针函数的返回值(即指向数组的指针)赋给整形指针p。字符串指针指向的字符串中的字符是不能改变的,而字符数组中的字符是可以改变的。字符串指针指向的字符串中的字符是不能改变的,而字符数组中的字符是可以改变的。,则数组名是一个常量指针,该指针的值是不能修改的,即类似。.........

2022-07-30 15:15:00 409

转载 C语言中指针没那么难~ (1)【文章结尾有资料】

指针在C语言中是一块很重要的内容,也是比较难理解的一块内容,我们需要反复学习反复巩固才可以对其有所了解。之前也分享过指针相关的笔记,但是都比较杂,本篇笔记汇总一下指针相关的内容,包含了挺多指针相关的基础知识点。......

2022-07-30 15:00:00 173

转载 python矢量数据筛选

属性过滤OGR 属性过滤,是利用 layer.SetAttributeFilter(filter_string) 函数进行要素筛选的。其参数 filter_string 即过滤条件,而这里依据运算符类型将过滤条件分为了 4 类:比较运算符(Comparison Operators)、逻辑运算符(Logical Operators)、成员运算符(Membership Operators)以及模糊匹配(涉及通配符)。 一、比较运算符 为了将变量名添加至过滤字符串中,我们可以利用字符串对象的 format() 方

2022-07-29 14:15:00 727 1

原创 嵌入式开发经验分享,把学习当作一种兴趣

由于我做的是软件,在公司看硬件资料不好意思,所以开始只好在家看,刚来上海工作我连续一年都在加班,后来不加了,因为我要挤出时间学习,通常我12点左右睡,第二天5点半起,我上班比较早,地铁上如果人不多,我也用来看书。在入门阶段的问题我通常不去问那些资深人士,而是问一些资历比较浅的朋友,比如刚毕业不久的学生,因为他们往往会跟你详细的讲解,而资深人士通常觉得你的问题太简单,所以回答的也很简单,我又不好意思多问。其他的一切我都比较满意,唯独薪资差强人意,我也明白原因,因为我是这个行业的新人,我没有经验。.......

2022-07-29 12:00:00 1411

转载 C语言入门【详细】

由于18的二进制数是10010,我们将一个int类型变量赋值18,本质上是将这个变量的内存地址对应的32个bit位修改为00000000000000000000000000010010(未满31位,后面的数字用0填充为什么是31而不是32呢,后面会介绍)。读者请注意,标准的C语言并不支持上面的二进制写法,只是有些编译器自己进行了扩展,才支持二进制数字。4为二进制值11后面一个数,由于11的个位数1+1满2,需要进1位,而二进制值11的位数1+1又满2,所以位数加1,最终转换结果为100。...

2022-07-28 11:00:00 2163

原创 物联网技术栈之网关技术

和传统企业应用于互联网应用相比,物联网的技术栈更宽泛更复杂。大致可以将物联网归类为以下 6 组技术栈:物联网网关M2M/IoT 通信服务大数据和过程管理用户交互平台和赋能安全每组技术栈的纵深都很陡峭,都可以单独作为一个学科来研究和讨论。在这里我们只做关键技术的一个概述,介绍它们与其他概念的一个关系,从而为项目经理、产品经理和解决方案架构师提供不同技术的一个概览,使他们更好地了解什么时候使用(不使用)这些技术(取决于具体项目的情况)。本篇文章主要介绍物联网网关相关技术。在物联网解决方案中,网关是一个至关重要的

2022-07-28 10:00:00 1318

原创 带你掌握 Makefile 分析

以上就是LiteOS_Lab中Makefile运行的机制了,大家可以自己跟着文章全部分析分析一边以加深影响,SDK中所有的Makefile文件都不需要也不能进行修改,只需要修改工程中的三个Makefile,.config(这个不用手动修改,可以通过图形化配置进行修改),Makefile(根据目标MCU修改MCU相关的参数即可,也就是MCU这个变量的值),project.mk(根据目标MCU修改、添加或删除库文件以及用户文件以及最后的C_DEFS变量即可)。...

2022-07-27 15:15:00 1505

原创 智能家居浪潮来袭,如何让机器看懂世界 【结尾有资料】

AmazonIoT使得您可以简便的构建可扩展的IoT应用管理物联网设备,而不需要维护任何基础设施。KVS提供可扩展的方案用于接收、存储、分析及回放摄像头传输的媒体流。

2022-07-27 12:00:00 1207

转载 基于华为云 IOT 设计智能称重系统 (STM32)【二】结尾有资料

简单来说,QT可以很轻松的帮你做带界面的软件,甚至不需要你投入很大精力。设备属性就是设备上传的传感器状态数据信息,应用侧提供了API接口,可以主动向设备端下发请求指令;所以,要实现应用层与设备端的数据交互,需要应用层与设备端配合才能完成。为了更方便的展示设备数据,与设备完成交互,还需要开发一个配套的上位机,官方提供了应用侧开发的API接口、SDK接口,为了方便通用一点,我这里采用了API接口完成数据交互,上位机软件采用QT开发。在使用接口时,最好先使用华为自己的调试接口测试。...

2022-07-26 14:00:00 481 2

转载 基于华为云 IOT 设计智能称重系统 (STM32)【一】

伴随着网络技术,各种通讯技术,传感器技术的飞速发展,物联网技术成为了当今技术领域发展为迅速的技术。而物联网技术的核心仍然是以互联网技术为基础的,物联网是新一代信息技术的重要组成部分,也是信息化时代的重要发展阶段。物联网通过智能感知、识别技术与普适计算等通信感知技术,广泛应用于网络的融合中,也因此被称为继计算机、互联网之后世界信息产业发展的第三次浪潮。(1)云端通信模块采用ESP8266-WIFI(2)联网通信模块采用ESP8266(3)GPS模块采用ATGM336H双模GPS模块。...

2022-07-26 13:30:00 1335

原创 嵌入式开发小记,实用小知识分享

之前为了方便测试部门保存一些测试数据,需要临时开发一个简单的nanomsgserver,与板子端的client在局域网内进行通信,接收client数据并保存。作为server端,需要绑定电脑的IP,不同的电脑IP是不一样的,所以使用不同的电脑时需要修改IP才能正常使用这个server程序。在不需要重新编译程序的情况下,有如下两种方法可以满足这个需求把IP写在配置文件里,比如ini格式的配置文件里,然后server程序读取配置文件里的IP,再进行绑定。server程序自动获取IP地址并绑定。...

2022-07-25 16:00:00 1200

原创 C语言实现发牌功能基本方法

当52张牌全部发放完毕,打印发牌的结果。中的4表示花色种类有四种,13表示每种有13张(13个编号),扑克牌的编号(名字)用字符表示,分别为{'2','3','4','5','6','7','8','9','0','J','Q','K','A'}('0'表示10)(PLAYER_NUMBER是玩家数量,4表示牌的花色种类有4种,13为某种花色的牌最多13张)这题实现起来还是比较简单的,只需定义两个多维的字符数组,第一个用来存放扑克的编号,第二个用来存放4个玩家的手牌。...

2022-07-25 11:28:11 2920

原创 零基础怎么学习单片机?

每个操作指令的执行都需要一定的执行时间,如果程序没有执行到该指令,则该指令的动作就不会触发,这样就会忽略许多快速发生的事件,例如方波频率检测的上升沿。中断的机理是比较容易理解的,但是什么时候打开中断,什么时候关闭、屏蔽中断,需要如何配置才能使能中断的某些功能,中断里要执行哪些程序,这些程序的要满足哪些要求就需要花些时间去理解与实践了。这个方案可以通过普通的数字集成电路实现,也可以通过PLC来实现,也可以通过CPLD或FPGA来实现,但是只有单片机的实现是最简单,成本也是最经济的。..............

2022-07-23 02:00:00 1749

转载 物联网安装调试员丨让“智慧”生活早日来临

随着工业物联网、智能家居、智慧城市等物联网产业的兴起,需要大量具备RFID、嵌入式、网络、传感技术知识,能够完成物联网产品的检查与维修、设备及附件的部署与组装调试、网络的检测与连接、配置数据参数以及网络环境的运行维护等工作的技术型和操作型人才。因此,为了能够更好地运用物联网产品为生产生活服务,熟练物联网相关技术的操作人员至关重要,也是物联网产业发展的中坚力量。职业定义物联网安装调试员的定义:利用检测仪器和专用工具,安装、配置、调试物联网产品与设备的人员。其工作任务就是要搭建数据互联的信息网络,并通过电子标签

2022-07-22 12:30:00 714

转载 毕业设计| 单片机自动分拣小车(上货/卸货/WIFI识别)

除此之外,STC89C52单片机具有以下标准功能4个外部中断,看门狗定时器,MAX810复位电路,16位定时器3个,全双工串行口,7向量4级中断结构一个。另外,根据输入方波的周期来判断旋转的角度,该参数t使用定时器0来计数,该单片机晶振计时为每次0.1ms,计数的次数决定参数t的周期,参数t的说明如下表所示。当单片机P1.0信号为“1”,左电机输出电路开关打开,P1.1输出信号“1”,P1.2信号“0”,OUT1口输出一个VCC高电平,OUT2输出低电平0V,左电机正转。方案一V-M直流调速系统。.....

2022-07-22 07:00:00 3907

原创 单片机外围器件学习攻略,小bai必看

还是帮老师做项目的时候(真心觉得多参与项目收获是非常多的),用到了LCD12864,后来我发现LCD12864和LCD1602的指令是类似的,而1602我之前就用它做过一个时钟,于是使用LCD12864的时候我非常的有信心。对了,光看资料是不够的,因为资料是非常凌乱的,你根本不知道从哪开始看,这个时候就很有必要买一本关于单片机的书,因为讲技术的书籍都是整理好的,你做什么模块,就看那一章节,边做实验边看书边看资料,学习是非常快的。如果是自己写的总结,最重要的就是4,其他什么的都可以不写。sbit是什么意思?.

2022-07-21 16:15:00 316

原创 单片机是如何工作的?

它就是从计算机上接过来的,一般地,这八根线除了接一个存储器之外,还要接其它的器件。如上图左所示一个存储器就象一个个的小抽屉,一个小抽屉里有八个小格子,每个小格子就是用来存放“电荷”的,电荷通过与它相连的电线传进来或释放掉,至于电荷在小格子里是怎样存的,就不用我们操心了,你可以把电线想象成水管,小格子里的电荷就象是水,那就好理解了。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低,而不是我们所习惯认为的1234这样的数字,这样,我们的一个谜团就解开了,计算机也没什么神秘的吗。......

2022-07-21 12:00:00 348

原创 嵌入式工程师,用好C语言这一利器的三要素

比如我们要处理“猴子选大王”的经典问题一群猴子,手拉手排成一个圆,从任意一只猴子开始从1开始报数,当遇到要排除的数(预先设定)时该猴子退出该圈,从下一只猴子开始继续从1报数,如此反复,最终剩下的猴子便是猴子的大王。同时注意异常时的处理,比如上面两个if语句就是异常情况的判断,每种异常情况对应不同的返回值,这样便于程序过程的调试和数据的合法性。此时,p指向开始的“猴子”。a、数据获取,为了程序的运行,上面的问题要获得猴子的总数,从那只猴子开始和剔除的个数;比如本程序的链表指针的定义,p,s,q。...

2022-07-20 15:51:55 722

空空如也

空空如也

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

TA关注的人

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