自定义博客皮肤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)
  • 资源 (7)
  • 收藏
  • 关注

原创 【嵌入式修炼之路】-Linux基础之常用工具

学益得线上课堂从基础学习嵌入式玩转智能硬件、斩获高薪offer在正式开始嵌入式学习之前,我们有必要搞懂几个工具,比如编辑器vim、编译器gcc、调试器gdb、工程管理器Makefile,今天就来给大家介绍下vim和gcc,这两个搞不懂,代码都写不了。vim以前的版本叫做vi,两者在配置上略微有区别,操作系统默认都会安装vi,不一定安装vim,所有如果环境里面没有的可以现安装一下。一...

2020-03-30 12:08:11 1361

原创 【嵌入式修炼之路】-Linux基础之常用命令

学习Linux操作系统,第一步当然是学习命令。就好比我们拿到一台Windows电脑一样,先得学会使用鼠标,离开了鼠标,啥也干不成。Linux命令有很多,而且可以说是无穷多个,因为工具实在太多了,每天都会有新的工具出现。就像Windows一样,我们安装一个软件,都会产生一个桌面图标,双击卓妙图标就可以使用。但是Linux里面一般不会提供这种桌面快捷方式,因为很多Linux都没有桌面的,所以我们就得...

2020-03-27 14:52:49 1350

原创 【嵌入式修炼之路】-Linux基础之目录结构

学益得线上课堂从基础学习嵌入式玩转智能硬件、斩获高薪offerLinux和Windows一样,都有分区这个说法,只不过在Windows下面,我们能明确的看到不同的盘符,Linux里面虽然存在,但是看不到。根目录目录是一种很形象的树形结构,每个目录下面都有很多文件、文件夹,可以理解为树枝。如果沿着树枝一直往下寻找的话,最终会找到树根。目录也是一样,如果不停的往上翻(退出目录),最终会退...

2020-03-25 12:22:53 1491

原创 【嵌入式修炼之路】-剖析嵌入式学习路线

学益得线上课堂从基础学习嵌入式开发玩转智能硬件、斩获高薪offerLinux基础作为学习嵌入式的第一步,主要就是搭建嵌入式开发环境。安装虚拟机或者购买云服务器都可以。有了Linux操作系统,下面就是要学会使用Linux,其实就是学习一些常用命令以及如何在Linux下面写代码。推荐书籍C语言C语言是嵌入式开发必备语言,不管是Linux,还是单片机、STM32,都对C语言有极高的要...

2020-03-25 10:35:45 1875 2

原创 嵌入式的下一个发展方向,边缘计算

什么是【边缘计算】,这个概念还得从【云计算】说起。云计算云计算 (cloud computing)指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。通过这项技术,可以在很短的时间内(几秒钟)完成对数以万计的数据的处理,从而达到强大的网络服务。通俗点讲,好比一个项目,以前都是一个人在做。但是随着项目越来...

2020-03-22 19:22:16 2367

原创 【排序】--C语言实现快速排序

快速排序首先简单描述一下快速排序的过程。比如有一组数据:第一步以6为基数,我们要筛选出,比6大的数字,放在6的后面,比6小的数字,放在6的前面。所以需要两个指针(下标)。从y开始,由于【2 < 6】,所以需要用2来覆盖6(不用担心6被覆盖,6已经被记下来了)。同时x++。接下来从x开始。由于【4 < 6】,就应该放在左边,所以不要移动元素4。继续x++。由于【7 &gt...

2020-03-19 15:30:45 676

原创 【Linux实用工具分享】-- crontab

分享一道网易的笔试题linux系统中有如下cron任务:20,40 */3 * * 1 sh test.sh下面描述正确的是:A 每周一每3小时,20分,40分,运行test.shB 每月1号每3小时,20分,40分,运行test.shC 每周一每3小时,每20分钟运行test.shD 每月1号每3小时,每20分钟运行test.shcron是什么有的时候我们可能需要在Linux里...

2020-03-18 11:01:52 679

原创 【排序】--C语言实现简单插入排序

简单插入排序先把第一个元素当做一个数组,因为如果数组只有一个元素的话,那么它肯定是个有序的序列。然后把第二个元素插入到前面有序的序列中,以此类推。把元素插入有序的序列,先从有序序列的最后一个元素开始比较,如果条件成立(大于或者小于),则元素向后移动。代码#include <stdio.h>#include <stdlib.h>#include <time.h...

2020-03-16 23:00:03 1248

原创 【二叉树】--C语言实现创建二叉搜索树

二叉搜索树创建二叉搜索树的过程很简单,第一个数字作为根,第二个数字,如果比根大,则作为根的右子树,如果比根小,则作为根的左子树。一次类推。对一棵二叉搜索树进行中序遍历,可以的到一个有序的序列。代码#include <stdio.h>#include <stdlib.h>struct Node{ int data; struct Node *le...

2020-03-16 15:26:56 729

原创 如何在Linux下检测程序是否存在内存泄漏?

C语言是嵌入式开发中永远回避不了的语言,不管是操作系统还是裸机开发,无处不体现着C语言的高效。 C语言可以直接操作内存,有着完善的内存管理机制,用好了可以削铁如泥,用不好自断一臂!不管是C还是C++,很多同学都不可避免犯内存泄漏的错误。因为我们平时写的都是些小程序,就算申请的内存没有释放,也不会影响程序结果,所以很少会关注内存泄漏的问题。但是如果把这个问题放在商用的项目中,就会是一个不小的隐患。...

2020-03-09 18:38:41 2837

原创 【排序】--C语言实现基数排序

基数排序基数排序适合整理较大的数据。先根据个位数排序,再根据十位数排序,以此类推,最终得到一组有序的数据。代码复杂的地方是如果收集数据。先定义十个“桶”,将个位按照具体的数字放在对应的“桶”内。收集的过程需要重新申请一块空间,从原始序列的最后一个数字开始,找出它在新序列中的位置,循环完成收集。代码#include <stdio.h>#include <stdlib.h&g...

2020-03-07 21:47:54 1198

原创 【排序】--C语言实现归并排序

归并排序归并排序将两个有序的序列合并成一个有序的序列。如何得到两个有序的序列,把数据不停的拆分,拆到每个序列只有一个数据。所以归并排序用到了递归思想。代码#include <stdio.h>#include <stdlib.h>//两个有序的序列合并成一个有序的序列void Merge(int *a, int start, int mid, int end)...

2020-03-07 13:24:11 1698

原创 【排序】--C语言实现堆排序

堆排序堆排序使用【大顶堆】或者【小顶堆】实现。分为两步:构建堆和调整堆,主要时间都花在了构建堆上。堆排序效率比较高,适用于数据量比较大的场景。代码#include <stdio.h>/*函数描述:构建大顶堆函数参数:数组 根节点的下标 最后一个结点的下标*/void AdjustMaxHeap(int *a, int root, int last){ int ...

2020-03-07 13:14:54 544

原创 【排序】--C语言实现希尔排序

希尔排序希尔排序属于一种插入排序,如果搞懂了直接插入排序,你会发现希尔排序就是多了一层循环。希尔排序比直接插入排序效率高的多,直接插入排序一次只能移动一个位置,但是希尔排序因为多了【增量】的概念,一次可以移动多个位置。把一组无序的数据变得基本有序后最后再使用直接插入排序。代码#include <stdio.h>void InsertSort(int *a, int lengt...

2020-03-07 13:04:26 1546

原创 【小米笔试题】密码破译-C语言实现

题目我们来做一个简单的密码破译游戏。破译的规则很简单,将数字转换为字母,1转化为a,2转化为b,依此类推,26转化为z。现在输入的密码是一串数字,输出的破译结果是该数字串通过转换规则所能产生的所有字符串。输入:多行数据,每行为一个数字串。输出:多行数据,没行对应输出通过数字串破译得到的所有字符串,并按照字符串顺序排列,字符串之间用单个空格分隔,每行开头和结尾不允许有多余的空格。样例输...

2020-03-07 11:40:19 2532

原创 C++ Stack实现四则运算

calculator.cpp#include <iostream>#include <stack>using namespace std;int Priority(char ch){ switch(ch) { case '(': return 3; case '*': case '/': return 2; case '+':...

2020-03-07 11:04:01 851

原创 C语言使用栈实现逆波兰表达式 | 四则运算 | 后缀表达式

calculator.c#include <stdio.h>#include <stdlib.h>#define OK 1000000#define ERROR 1000001struct node{ int data; struct node *next;};typedef struct node Node;struct ...

2020-03-07 10:51:54 1196

原创 分享几个互联网求职神器,搞明白了,春招再严峻也不用担心!

每年的3月4月,9月10月,都是应届生求职的高峰时期。今年虽然有疫情影响,但是求职的进程的还是会慢慢向前推动!求职无非就是笔试+面试,对于应届生来说,笔试靠刷题,面试靠在校的项目经历,剩下的就看你的临场发挥了。今天就给大家推荐几款求职神器,搞定了,能不能拿到大厂offer不好说,起码找份开发的工作还是可以的。01 牛客网牛客网是一个专门面向程序员大学生的IT技能学习、备考、求职题库,包括了...

2020-03-06 20:22:53 1290 2

原创 详细盘点C语言在工作中的实际应用

前两天有个大一的同学问我:为什么要学习C语言,听学长说好像要用它过国家的二级?!这个回答很实用,因为相关专业的同学如果过不了国家二级的话,连毕业都困难。但是C语言的作用绝非这个。今天就来给大家详细盘点C语言的实际应用。01 可编程芯片给大家找了几块芯片:51单片机是电子、自动化等专业同学的必修课程。它体积大、处理能力低,虽然缺点明显了一点,但非常适合学习入门。单片机里面跑的程序就是C语言...

2020-03-05 10:41:02 7218

原创 C语言使用json-c发送网络数据

之前做项目的时候,在嵌入式端侧用到了json数据格式,主要负责和服务器通信使用。json-c网上的资料很少,所以下面总结一些,再附上一些代码,供大家参考使用。json-c安装:apt-get install libjson0-dev libjson0-dev软件包里面有json-c的头文件以及开发需要的库文件。头文件放在了/usr/include/json/json.h目录下,写代码的时候...

2020-03-03 12:24:16 4823 2

原创 如何区分优质程序猿?递归的修炼之路!

递归是程序运行时的一种现象,也是解决某些特定问题时较迭代算法来说更自然更优雅的代码组织方式。作为程序员工作了多年后,我发现除了用发量来区分一名程序猿是否优秀以外,能不能理解好递归、能不能用递归来解决问题也是区分好程序员和差程序员的试金石。很多同学通过学习掌握了某些语言的语法,也能写一些代码,但是一遇递归就头大。下面就来给大家总结总结。谈到递归,我们的C语言老师可能会说递归就是「函数自己调用自己」...

2020-03-02 15:08:16 406

原创 如何用栈实现深度优先算法-C语言解决迷宫问题

数据结构一直都是专业课里面比较难的一门课程,因为里面涉及到了很多算法知识。这也给大家造成了一个困扰,是不是智商不行就学不了数据结构?显然不是!算法知识确实很难,但是我们在学习的过程中很少会去开发新的算法,基本上都是在别人的成果上加以探索。其实只要是愿意花时间,善于归纳总结,我们还是能发现很多算法的规律。看的多了,就很容易在解决实际问题的时候联想到对应的算法。直奔主题吧。栈结构我们在之前的课堂上...

2020-03-01 20:24:03 2837 3

原创 如何用队列实现广度优先算法-C语言解决迷宫问题

广度优先搜索算法(也称宽度优先搜索,缩写BFS)是图里面常用的一种遍历算法。这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和广度优先搜索类似的思想。广度优先算法属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。基本过程,BFS是从根节点开始,沿着树(图...

2020-03-01 20:12:25 4542

原创 让段错误不再是一个错误

今天的主题是:访问了空指针一定会出现段错误(segmentation fault)吗?看下面代码:test.c#include <stdio.h>int main(){ int *p = NULL; *p = 1; return 0;}在Linux里面写了这么多代码,大家应该很清楚,上面的代码会出现段错误,因为访问了空指针。#gcc te...

2020-03-01 18:04:22 730

原创 僵尸进程该怎么处理?

为了让大家更好的理解僵尸这个概念先给大家看下百度百科对僵尸的定义:僵尸(Jiang Shi): 顾名思义,僵硬的尸体;又名跳尸、移尸。在中华民间传说中,特指人类死后,尸体因为阴气过重而变异而成的鬼怪,毫无人性,丧失理智,双手向前横着伸直展开,且用双腿不停跳跃,从而移动的行尸走肉,除了头部和四肢,身子其他部位难以运动。加上由于近代影视的设想,往往会拥有超自然力量,比如力大无穷、刀枪不入、抗腐化等;...

2020-03-01 12:58:27 1177

基于百度AI的图像识别

开发环境:Windows QT 适合人群:有C++和QT开发基础 借助百度AI开放平台,完成的图像识别demo(仅限于识别动物)

2022-04-27

基于百度AI的语音识别系统

开发环境Windows QT 适合人群:有C++和QT开发基础 借助百度AI平台完成的语音识别demo

2022-04-27

C语言提升项目-停车管理系统

纯C语言项目,不需要借助任何第三方库。适合有C语言基础、数据结构(链表、队列)基础的同学,代码量800行,可用于提升编程能力。 实现功能包含: 停车场页面初始化(二维数组); 进入停车场(随机找位置); 寻找车辆(广度优先算法找到最佳路径); 车辆离场(离场最佳路径)。 代码默认在Linux下面运行,如果需要在Windows下面运行,只需要注释掉: system("clear"); 代码,因为clear是Linux下面的命令,Windows用不了。 代码中的Makefile(工程管理器)也是在Linux下面使用,如果切换到Windows,需要手动编译或者借助IDE编译(比如VS)。

2022-04-27

学生管理系统【数组版 链表版 数据库版】

三个版本实现的功能一样,学生信息的增删改查。 数组版本:使用结构体数组存储学生信息; 链表版本:使用链表存储学生信息; 数据库版本:在链表的基础上使用sqlite3保存学生信息。 代码在Linux平台开发出来,如果放到Windows平台运行,需要注释掉几行代码,比如: system("clear");因为clear是Linux下面的命令,Windows用不了,其他地方不需要修改。 代码适合C语言初学者,如果已经学完了C语言,可以用这个代码做为提升锻炼。

2022-04-27

C语言排序算法.zip

包括7种排序 直接插入排序、希尔排序、快速排序、简单选择排序、堆排序、归并排序、基数排序,C语言实现。

2020-04-14

QT介绍.pptx

Qt的简单介绍,用于初学者和刚入门的同学,可以作为老师上课的课件使用

2019-08-01

Uboot命令详细解析

uboot命令详解

2017-07-24

空空如也

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

TA关注的人

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