自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 双向循环链表

文章目录要求一、双向循环链表介绍二、双向循环链表实现1.2.要求实现双向循环链表,实现插入、删除、查询等操作,生成成静态库和动态库,编写测试程序验证库文件,编写makefile实现编译。函数包括以下:a、链表初始化b、两个链表合并c、链表节点个数d、删除指定节点e、指定节点后插入新的节点(尾插)f、找出指定节点在链表中位置g、销毁链表一、双向循环链表介绍参考文章:(C语言版)链表(四)——实现双向循环链表创建、插入、删除、释放内存等简单操作详解双向链表的基本操作(C语言)数据结构

2021-11-24 10:06:44 528

原创 环形缓冲区实现(C语言)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入

2021-11-24 09:57:19 3077

原创 STM32—跑马灯库函数实验

文章目录前言一、硬件设计二、软件设计1.基于库函数代码编写2.基于寄存器代码编写前言回顾之前的GPIO基础知识,STM32F103一共有7组GPIO,每组GPIO含下面7个寄存器,也就是7个寄存器一共可以控制一组GPIO的16个IO口。一、硬件设计本章用到的硬件只有 LED(DS0 和 DS1)。其电路在 ALIENTEK 精英 STM32F103 开发板上默认是已经连接好了的。 DS0 接 PB5, DS1 接 PE5。是不需要自己接任何电路的,因此我们只需要编写代码即可。设置推挽输.

2021-09-30 18:06:15 706

原创 STM32—GPIO简介

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、STM32工程目录介绍1. 目录结构介绍2. 各目录结构之间的层次关系二、寄存器与GPIO口的配置1.GPIO简介2. IO口控制寄存器三、端口复用和端口重映射前言本文基于正点原子官方提供的资料,仅供个人学习使用。一、STM32工程目录介绍1. 目录结构介绍前面基于固件库新建了一个工程模板,在此模板下可以进行进一步的实验开发。下面基于正点原子提供的一个例程源码来分析一下,对于实际开发中,一个工程包含哪些东西,这些

2021-09-30 15:53:08 841

原创 STM32—建立工程模板

文章目录前言一、基于固件库二、基于寄存器1.引入库2.读入数据总结前言在STM32的开发过程中,我们知道有两种方式,库函数和寄存器。在实际开发中我们可以直接操作寄存器,但是这种方法的劣势是你需要去掌握每个寄存器的用法,你才能正确使用STM32,而对于 STM32 这种级别的 MCU, 数百个寄存器记起来谈何容易。于是 ST(意法半导体)推出了官方固件库,固件库将这些寄存器底层操作都封装起来,提供一整套接口(API)供开发者调用,大多数场合下,你不需要去知道操作的是哪个寄存器,你只需要知道调用哪些函.

2021-09-30 11:20:59 3262 1

原创 树莓派开发—语音识别功能

文章目录前言一、语音识别模块介绍二、使用步骤1.引入库2.读入数据总结前言前面学习了树莓派的串口通信,本节将树莓派和语音模块结合起来,二者通过串口通信实现语音识别功能。具体就是语音模块将识别到的指令进行处理发送给树莓派,树莓派根据接收到的指令,执行不同的语句,执行不同的操作。比如控制不同的继电器,从而实现打开和关闭不同灯光的操作。一、语音识别模块介绍本次开发用到的语音模块是1.此款LD3320语音识别模块自带一个STC11L08XE单片机,模块内部通信为SPI接口,对外通信为串口。2.语音.

2021-09-08 21:20:03 5297 2

原创 树莓派外设开发基础—串口通信

文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结

2021-09-06 08:17:17 4428 1

原创 树莓派外设开发基础—wiringPi库

文章目录一、什么是树莓派外设开发二、wiringPi库1.wiringPi库的安装2.wiringPi库API大全三、树莓派控制继电器1.硬件连接一、什么是树莓派外设开发树莓派的这些接口我们可以称之为外设,通过这些接口进行开发即为外设开发。如同stm32的开发一样,除了直接配置寄存器之前,前人帮我们封装了很多函数,开发时直接调用这些函数大大降低了开发难度。同样,在树莓派上,前人封装了一个非常棒的库—wiringPi库。二、wiringPi库wiringPi是一个很棒的树莓派IO控制库,使用C.

2021-09-04 16:58:03 995

原创 C语言—数组、字符串的创建

文章目录前言一、整型数组的创建1. 一维数组的静态、动态创建2. 二维数组的创建二、字符串的创建1. 字符串的动态创建2. 字符串数组的动态创建前言在刷算法题的过程中,经常需要自己创建一个数组或者字符串,这是最最基础的东西,不会创建的话就不能往下走了。本文通过代码介绍一维整型数组、二维整型数组的静态创建和动态创建,字符串的动态创建和字符串数组的动态创建。一、整型数组的创建1. 一维数组的静态、动态创建一维数组的静态创建:这个比较简单,就是遍历数组,将数组的每个元素输入#include &lt

2021-08-04 21:35:35 3678

原创 智能家居项目—简单工厂模式

文章目录前言一、简单工厂模式二、简单工厂模式代码示例前言回顾之前我们写的C语言代码,不管是学生成绩管理系统还是FTP服务器,代码逻辑都非常混乱,写着写着就会出错,也不好调试,代码的可扩展性较差。这时候就需要借助设计模式了。设计模式是代码设计经验的总结,是一系列的编程思想,使得代码的稳定性、拓展性更强。一、简单工厂模式简单工厂模式是23种设计模式的一种,是最常用的设计模式之一,这种类型的模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且

2021-07-22 14:39:46 313

转载 Source Insight 4.0 的使用教程

转载文章:01_代码管理和编辑工具SourceInsight的安装和使用常见问题:1、没有正确显示在右边的file list列表框答:需要在View菜单下找到Panels级联菜单下的Project Windows,把它勾选上。2、Source Insight4.0软件打开C程序中文注释乱码答:更改Options->Preference->Files中最下面的Default encoding中程序默认的UTF-8改为System Default(windows ANSI)。其它常见问

2021-07-21 22:09:56 523

原创 树莓派开发—初识驱动开发

文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结

2021-07-20 20:54:44 1496 1

转载 树莓派开发—Linux系统结构详解

文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport

2021-07-16 21:42:21 599

原创 树莓派开发—文件系统

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码

2021-07-16 16:37:53 581 1

原创 树莓派开发—内核源码配置、编译

文章目录一、树莓派等芯片带操作系统的启动过程二、树莓派Linux源码目录树分析三、树莓派Linux源码配置1.为什么要进行Linux内核源码配置?2.配置内核的三种方式四、树莓派Linux内核编译1.编译内核2.树莓派挂载新的Linux内核一、树莓派等芯片带操作系统的启动过程在进行内核源码分析之前,我们先了解一下各种设备的启动过程:① C51,STM32(裸机)等——C直接操控底层寄存器实现相关业务, 业务流程型的裸机代码,如遥控灯: while(1)垃圾桶:WemosD1 LOOP恩智浦智能

2021-07-10 23:26:58 1474 4

原创 树莓派开发—交叉编译工具链的安装

文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport

2021-07-10 09:24:28 648

原创 Linux库概念及相关编程

文章目录前言一、静态库和动态库的概念二、库的制作1.引入库2.读入数据三、头文件和库文件的查找与使用(小结)前言在实际应用中,我们通常不想开放自己的源代码,不想让别人知道自己所写代码中的漏洞,但又需要将自己所写的代码让别人使用,这时候就需要用到库了。本章介绍库的相关知识,包括静态库与动态库的概念,静态库与动态库的制作及使用,头文件与库文件的查找与使用。一、静态库和动态库的概念Linux环境下:.so后缀为动态库,.a后缀为静态库。静态库:编译时直接整合到目标程序中,因此静态库文件体积较大,优点是

2021-07-06 21:50:50 127

原创 分文件编程思想与条件编译详解

文章目录前言一、头文件和源文件的区别二、为什么头文件和源文件要分开写三、头文件和源文件编译过程四、条件编译详解前言我们在刚学习C语言的时候,通常只创建一个 .c 文件,将头文件、函数的定义和调用写在同一个文件之中。对于初学者而言,由于代码量比较少,逻辑比较简单,这样做是没有问题的。但随着需要实现的功能越来越复杂,工程越来越大,这时我们就不能只用一个 .c 文件来实现了。我们需要创建一个包含头文件和源文件的工程。首先,我们通过一个简单的例子来了解分文件编程思想:举例:正点原子那个代码,顺带写一下Mak

2021-07-03 21:01:06 322

原创 C/C++编译过程详解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码

2021-01-15 18:23:27 888

原创 C语言—内存的管理和释放

C语言—内存的管理和释放一、Linux下内存分配管理1.编译好的C程序文件分区2.C程序运行时内存分区3.为什么要进行内存分配4.内存分配方式二、详解堆和栈1.堆和栈的简介2.堆和栈的区别三、内存管理函数四、其它知识1.(嵌入式开发中)程序编译完成后的大小统计2.数据存储区域实例3.字符串与字符数组一、Linux下内存分配管理1.编译好的C程序文件分区分析C语言下程序的内存分配,我们从一段简单C程序源码test.c开始。如下所示:#include <stdio.h>#include

2021-01-08 22:06:17 10380 6

原创 C语言—变量的存储方式、作用域和生存周期

变量的存储方式、作用域和生存周期一、变量的存储方式二、变量的作用域和生存周期1.局部变量的存储类别a.普通局部变量b.static局部变量c.寄存器变量(register变量)2.全局变量的存储类别a.在一个文件内扩展全局变量的作用域b.将全局变量的作用域扩展到其它文件c.将全局变量的作用域限制在本文件中三、其它杂项讨论(重点:字符串)a.extern函数和static函数的区别(作用域)b.const变量和static变量存放位置c.关于字符串常量存储讨论四、参考博文一、变量的存储方式在C语言中,每

2021-01-03 17:28:15 1663

原创 const 关键字详解

const关键字的使用可以节省空间,避免不必要的内存分配,因为编译器通常不为const常量分配内存空间,而是将它保存在符号表中,这样就没有了存储于读内存的操作,使效率也得以提高;c语言中被const修饰的变量虽然不能直接修改,但是可以间接的通过指针修改,在c++中不能修改被cosnt修饰的变量。C++编译器对const常量的处理当碰见常量声明时,在符号表中放入常量;编译过程中若发现使用常量则直接以符号表中的值替换。编译过程中若发现对const使用了extern或者&操作符,则给对应的常量分配存

2020-12-31 11:16:45 12553 7

原创 关于指针作为函数参数问题的拓展讨论

关于传递动态内存的讨论前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as np

2020-12-02 20:56:14 535

原创 校园网条件下,无需路由器实现物理机、虚拟机、开发板相互ping通并上网

文章目录背景介绍原理介绍具体实现1.PC机配置2.虚拟机配置3.开发板配置特别鸣谢背景介绍大多数网上采用的方式都是使用集线器或者路由器的方式实现物理机、虚拟机、开发板三者互相ping通并且可以同时访问外网的,但是对于实验条件有限的大学生来说,他们往往没有该实验条件。因此,本文介绍在校园网条件下实现物理机、虚拟机、开发板三者互相ping通并且可以同时访问外网。实验前的准备:PC机(要求有无线网卡和有线网卡)一根网线虚拟机:Ubuntu 18.04开发板:Linux开发板(我的是正点原子的Linu

2020-11-27 19:13:24 1710 1

空空如也

空空如也

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

TA关注的人

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