自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (11)
  • 收藏
  • 关注

原创 STM32的MAP文件

MAP文件是 MDK编译代码后,产生的集程序、数据及IO空间的一种映射列表文件。RW:Read-Write的缩写,主要是RW-data,RW-data由程序初始化初始值。ZI:Zero-initialized的缩写,主要是ZI-data,由编译器初始化为0。RO:Read-Only的缩写,包括RO-data(只读数据)和RO-code(代码)段(section):描述映像文件的代码和数据块。.constdata:与RO-data同义。.data:与RW-data同义。.bss:与ZI-data同义。

2023-07-12 14:29:10 1086

原创 炒了个叫“嵌入式”的大杂烩,请大家品尝

时钟系统是CPU的脉搏,非常重要。STM32时钟系统比较复杂,不像51单片机一个时钟就可以解决一切,它是由有五个时钟源组成,HSIHSELSILSEPLL。由于STM32本身非常复杂,外设非常多,并不是所有外设都需要系统时钟那么高的频率。同一个电路时钟越高功耗越大,抗电磁干扰能力也就越弱,所以STM32采用多时钟源的方法来解决这些问题。

2023-06-15 17:01:13 218

原创 手写STM32IIC协议

应答信号时序代码编写。应答信号,发送器每发送一个字节(8个bit),就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。、开启GPIOB的时钟。IIC总线空闲时表现为高电平,所以初始化之后将时钟信号、数据信号拉高。本文使用正点原子战舰v4开发板,用软件模拟iic协议而非使用硬件iic。在IIC总线上传送的每一位数据都有一个时钟脉冲相对应(或同步控制),即在。由高电平向低电平跳变,开始传送数据。定义、声明引脚功能。初始化相关GPIO,开启相关时钟。开始信号的时序编写。输入输出模式的切换。

2023-06-10 12:58:07 792

原创 USART2实现Motbus485通信

本文会教你如何驱动485传感器,通过手写串口通信到485数据收发,实现传感器的驱动。

2023-06-09 18:35:19 1039

原创 【STM32F1】以太网通信之UDP/TCP实验

在本实验中,开发板主控芯片通过 SPI 接口与 CH395Q 以太网芯片进行通讯,从而完成对CH395Q 以太网芯片的功能配置、数据接收等功能,同时将 CH395Q 以太网芯片的 Socket0 配置为 UDP 模式,并可通过按键发送 UDP 广播数据至其他的 UDP 客户端,也能够接收其他 UDP客户端广播的数据,并实时显示至串口调试助手CH395Q进行UDP实验,实际是在移植的基础上,将结构体内容拷贝给ch395q_t结构体。而函数做的便是这个功能。

2023-06-07 15:24:52 1813

原创 【STM32F1】CH395Q驱动库移植

接着,移植SPI的驱动添加到BSP目录下。在user文件夹下新建测试文件。:我们选用原子战舰V4的例程。将驱动库文件添加到工程。文件,用来编写测试代码。main.c函数代码如下。

2023-06-06 15:29:38 833

转载 CMake入门教程

动态库的链接具有传递性,如果动态库 A 链接了动态库 B、C,动态库 D 链接了动态库 A,此时动态库 D 相当于也链接了动态库 B、C,并可以使用动态库 B、C 中定义的方法。我们编写的源代码并不需要将他们编译生成可执行程序,而是生成一些静态库或动态库提供给第三方使用,下面来讲解在 cmake 中生成这两类库文件的方法。在编译项目源文件的时候,很多时候都需要将源文件对应的头文件路径指定出来,这样才能保证在编译过程中编译器能够找到这些头文件,并顺利通过编译。CMake提供了搜索文件的命令。

2023-06-06 11:10:00 664

原创 FreeRTOS队列【STM32F1】

函数xQueueCreate是动态创建队列的方式,xQueueCreateStatic则是静态创建队列。其中参数表队列长度,uxItemSize指队列项目的大小。如果队列创建失败会返回NULL,创建成功则返回其他值(队列的起始地址)。函数 xQueueCreate()实际上是调用了函数 xQueueGenericCreate()。其中指队列存储区域起始地址,指静态队列结构体,创建成功返回非NULL。

2023-05-29 14:41:24 144

原创 FreeRTOS列表与列表项

FreeRTOS中的列表与列表项本质是数据结构中的链表链表和节点。

2023-05-27 10:25:59 107

原创 【STM32F1】RTOS中断管理

普通进入临界区的宏taskENTER_CRITICAL()与中断中进入进阶区的宏taskENTER_CRITICAL_FROM_ISR(),前者是任务级的,进入临界区后屏蔽任务之间相互抢资源。后者是中断中进入的。我们在中断函数中打印看是那个定时器输出的,以进行对比,达到验证FreeRTOS管理中断优先级在5-15之间的中断。这边临界区的概念是:临界区内的代码不允许打断,所以进入的时候我们会关闭中断,出去的时候会开启中断,当然这里提到的中断指的是被RTOS所管理的中断。task1用于打开和关闭中断。

2023-05-23 14:31:37 173

原创 【STM32F1】FreeRTOS任务挂起与恢复

若要使用此函数,需要将FreeRTOSConfig.h文件中INCLUDE_xTaskResumeFromISR宏配置为1。需要传入的是待恢复任务的任务句柄。有BaseType_t类型的返回值,返回pdTRUE表示恢复后需要进行任务切换,返回pdFALSE表示恢复后不用进行任务切换。,只能在中断函数外使用。它需要传递的是要恢复的任务的句柄。当按下key0时,led0任务挂起,按下key1时,led0任务恢复。基于创建与删除实验,我们要新建一个任务task3,实现通过按键对任务进行挂起与恢复。

2023-05-20 11:16:22 279

原创 【STM32F1】FreeRTOS创建/删除任务实验

第三个参数任务要使用的堆栈大小。与静态创建任务函数不同的是,动态任务创建函数创建的任务使用的空间、堆栈大小这些都是由RTOS进行管理的,而静态任务创建函数则是需要用户去定义空间、堆栈大小这些。被删除的任务将被从就绪态任务列表、阻塞态任务列表、挂起态任务列表和事件列表中移除,要注意的是,空闲任务会负责释放被删除任务中由系统分配的内存,但是由用户在任务删除前申请的内存,则需要由用户在任务被删除前提前释放,否则将导致内存泄露。//删除开始任务,为NULL默认删除该任务,或者写要删除的任务对应的任务句柄。

2023-05-18 20:07:12 167

原创 FreeRTOS移植【STM32F1】

考虑移植完的项目后续有用到其他外设,如LED、LCD的可能,我们在正点原子HAL库版本的内存管理实验工程上进行freertos的移植工作。当然该工程不包含定时器的驱动文件,我们也将定时器相关的准备好。其中source文件夹下的portable文件夹中我们只用到了keil、MemMang、RVDS三个文件,选中其他不必要的文件并删除,如下。原子最初的system文件是针对ucos编写的,所以我们需要进行相关修改。delay.c文件的修改,该文件需要修改的比较多。内核的移植文件,需要添加两个文。

2023-05-18 11:03:50 758

原创 STM32跑马灯实验【库模板】

我们在这里主要用到的是上面加粗的函数。关于GPIO相关函数的使用方法,在进行开发时我们往往是选中该函数然后进行"go to definition",查看使用方法,如图。下面是led初始化(GPIO初始化)的完整程序,在程序中先将GPIOB和GPIOE的时钟开启,用了。对于GPIO方法的使用,在GPIO的h文件最下方列出了几乎所有的GPIO相关函数。我们复制GPIOB到函数第一个参数的位置,对于第二个参数也是同样的方法。后面就是GPIO相关的函数使用了。其他函数的使用也是这样的方法。那本篇就先介绍到这里。

2023-04-27 11:14:37 207

原创 【STM32工程模板】库函数模板搭建

本文讲解的是一个库函数模板工程的搭建,我们做的基于库函数的开发基本上都是基于该模板。那本节主要讲的是关于库函数的模板搭建,需要相关文件的可以私信。

2023-04-27 10:11:17 239

原创 经典主干DarkNet53&网络搭建

YOLOv3中的backbone,DarkNet53。不同于YOLOv2中的DarkNet19,它由大量的残差组成,DarkNet53在ImageNet上面的表现也证明了该网络的有效行。DarkNet53的网络结构如下。YOLO版本的如下:Darknet-53中总共有6个单独的卷积层和23个Residual,每个Residual包含2个卷积层(一个1×1,一个3×3),所以Darknet-53中共有52层卷积,可为什么叫做Darknet-53呢?

2023-04-26 20:18:49 749

原创 vue从0到1(基础篇)

从0到1学一遍vue,这边记录本人学习vue的过程。

2023-01-15 19:30:11 400

原创 centos7安装yum/git/curl

介绍阿里云centos7安装yum/git/curl的方法,拒踩坑!

2023-01-12 16:12:28 652

原创 阿里云centos7安装与配置Jenkins

常用工具有 Gitlab CI,Github CI,Jenkins 等。这个环节不参与部署,只负责构建代码,然后保存构建物。若提示:jenkins-2.249.1-1.1.noarch.rpm 的公钥尚未安装,则使用以下脚本安装,跳过公钥检查。负责拉取代码库中的代码后,执行用户预置定义好的操作脚本,通过一系列编译操作构建出一个。:若之前已从Jenkins导入过密钥,“rpm–import”将失败,请忽略,继续执行下面。的概念是:将制品库的制品拿出后,部署在测试环境 / 交付给客户提前测试。

2023-01-10 18:52:02 1117

原创 Docker之搭建 Java Web 项目运行环境

与之前我们提及的一样,要搭建这样的由多个程序所协作组成的开发环境,使用 Docker Compose 是最佳的选择。建立 Docker Compose 项目之前,我们先来规划一下项目的目录结构。项目内容清晰明确,复制、迁移和与他人共享的过程中,不会发生遗漏的情况;在定义 Docker Compose 项目时可以使用相对路径,让共享、迁移后整个项目可以不需要额外操作就能运行。在这些的基础上,我给出一个建议性的目录结构,供大家参考。

2022-11-27 20:37:44 633

原创 Docker之常见 Dockerfile 使用技巧

在掌握 Dockerfile 的基本使用方法后,我们再来了解一些在开发中使用 Dockerfile 的技巧。这一小节的展现方式与之前的略有不同,其主要来自阅读收集和我自身在使用中的最佳实践。也许这里面介绍的不是最为标准或是合乎规范的方式,但一定是能够直接帮助大家在开发中使用 Docker 提升生产力的方式。下面就让我们来看看这些关于 Dockerfile 的使用技巧吧。

2022-11-27 20:36:26 539

原创 Docker之DockerFile的使用

由于 Docker 镜像的结构优势,使它的占用空间远小于普通的虚拟机镜像,而这就大幅减少了 Docker 镜像在网络或者其他介质中转移所花费的时间,进而提高了我们进行迁移部署的效率。不过,你要是以为这就是 Docker 能够快速部署的终极大招那就大错特错了。在这一小节里,我们将谈到 Docker 特有的镜像构建定义文件,也就是 Dockerfile。通过了解它,你能真正体验一种进行秒级镜像迁移的乐趣。

2022-11-27 20:34:45 1315

原创 Docker(三)之镜像与容器

镜像和容器作为 Docker 里最基础的概念,我们很有必要了解 Docker 对它们的很多定义以及其他与它们有关的知识。在这一小节里,我们就专门针对镜像与容器两个概念展开,细致的梳理与这两者有关的概念和定义。

2022-11-27 20:33:16 1807 1

原创 Docker(二)之在 Windows 和 Mac 中使用 Docker

对于开发来说,Windows 和 macOS 是更为常见和常用的系统,所以也很有必要了解在 Windows 和 macOS 中使用 Docker 的方法。很幸运的是,Docker 的官方对这两个系统提供了强有力的支持,我们可以很轻松的在这两个系统中运行 Docker。在这一小节中,我们就来了解一下 Docker 在 Windows 和 macOS 中安装的方式以及运行的原理。

2022-11-27 20:32:14 1012

原创 Docker(一)之浅谈虚拟化和容器技术

相信所有对 Docker 有所耳闻的朋友都知道,它是一款以技术为基础的软件,因此在了解有关 Docker 的概念知识和使用方法之前,虚拟化和容器技术是我们不可或缺的基础知识。在本小册的第一个小节里,我们就先来尝一尝这道有关虚拟化和容器技术的开胃菜吧。

2022-11-27 20:25:54 873

原创 Java基础篇【八股文】

本文主要分享java八股文知识,该文分享的是java基础相关的八股文。内容较为详细,欢迎大家订阅。

2022-11-27 20:05:36 1076

原创 MySQL万字基础总结

本文讲解MySQL,适用于学习和复习。

2022-09-12 21:44:40 202

原创 java Spring深入浅出

学习目标 能够说出Spring的体系结构 能够编写IOC入门案例 能够编写DI入门案例 能够配置setter方式注入属性值 能够配置构造方式注入属性值 能够理解什么是自动装配一、Spring简介1 Spring介绍问题导入我们为什么要学习Spring框架?1.1 为什么要学Spring技术是JavaEE开发必备技能,企业开发技术选型命中率>90%专业角度简化开发,降低企业级开发的复杂性框架整合,高效整合其他技术,提高企业级应用开发与运行效率1.2

2022-05-20 23:48:32 882

原创 谈谈java里面的反射

最通俗的反射讲解,学反射理解这篇就差不多了。反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; 对于任意一个对象, 都能够调用它的任意属性和方法; 这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。注意:知道这个类的所有属性和方法/都能够调用它的任意属性和方法: 之前用private封装的属性,外界创建的对象调用不了,只能通过调用public方法来间接获取这个对象。反射就是说,用反射的方式创建对象,就是什么都可以调用到。动态获取信息/动态调用方法:

2022-05-20 14:35:58 69

原创 剖析java三种工厂设计模式

java三种工厂设计模式1. 简单工厂模式简单工厂有以下三个主角:Factory:工厂负责生产产品AbstructProduct:抽象产品,就好比华为手机,我没说是华为那个型号手机。Product:具体产品,就比如华为mate50。我想要华为mate50手机,那华为mate50手机首先是华为手机,华为手机有什么功能就在下面接口写了。public interface HuaweiiPhone { void call();}华为手机有mate50、p40、荣耀等等很多个手机,那我

2022-05-19 18:54:18 1640

原创 vue重点知识速览

小知识点props props做属性封装, 接收父组件数据 v-model 数据双向 v-for item in list <es-goods v-for="item in goodlist" :key="item.id" :id="item.id"></es-goods> forEach和filter、find total(){ let a = 0 this.goodlist .filter(x=..

2022-05-18 11:08:03 368

原创 基于Maven整合Mabatis/servlet/vite Vue构建了一个简单的登陆注册界面前后端

基于Maven整合Mabatis/servlet/vite Vue构建了一个简单的登陆注册界面前后端1.maven创建及相关坐标导入File->new Project->mavenpom.xml坐标导入 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</ver

2022-05-18 11:01:35 941

原创 Mybatis最全入门

mybatis快速入门

2022-05-17 10:08:20 341

原创 Java基础部分重点知识详解

java基础知识重点详解

2022-05-17 10:01:46 515

原创 C++引入json库(Clion)

C++引入json库环境Mac+Clion首先,准备cppjson文件。GitHub上拔下来。github地址:https://github.com/open-source- parsers/jsoncpp#generating-amalgamated-source-and-headerstep1:将jsoncpp下的include和lib文件夹放入c++项目根目录下,如下:step2接下来需要找到三个文件夹:1. include2. lib3. include/json复制其路

2022-03-27 21:41:17 4302 4

原创 机器学习之K均值聚类

机器学习之K均值聚类什么是聚类?聚类是一种无监督的学习,它将相似的对象归到同一个簇中。假定有一些数据,现在将相似数据归到一起,簇识别会告诉我们这些簇到底都是些什么。聚类与分类的最大不同在于,分类的目标事先已知,而聚类则不一样。因为其产生的结果与分类相同,而只是类别没有预先定义,聚类有时也被称为无监督分类(unsupervised classification)。k均值聚类把一组样本分成k组,根据每个样本的特征,相似的放在一组。具体来说:1.先在这个样本中随机取k个点样本作为质心,如下图第一行

2021-07-02 21:44:45 372

原创 机器学习之Numpy

机器学习之NumpyNumpy基础数据结构Numpy通用函数Numpy索引及切片Numpy随机数Numpy数据的输入输出1. Numpy基础数据结构NumPy数组是一个多维数组对象,称为ndarray。其由两部分组成:① 实际的数据② 描述这些数据的元数据数组的基本属性① 数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推② 在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量:比如说,二维数组相当于是两个一维数组,其中第一个

2021-05-02 20:28:55 312

原创 机器学习——特征工程

机器学习-----特征工程概述:机器学习是当前解决人工智能问题的主要技术,在人工智能领域处于核心地位。1.什么是特征工程 **特征工程**是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高对未知数据预测的准确性。包括<font color="Red">特征抽取、特征预处理、数据降维。<font >2.特征抽取特征抽取,将一个文本转换成具体的数字,即对文本等数据特征值化,包括字典特征抽取、文本特征抽取。2.1字典特征抽取**字典特征抽取**(Dic

2021-04-20 21:54:56 158

原创 机器学习之线性回归预测波士顿房价

机器学习之线性回归预测波士顿房价*正规方程与梯度下降优化W值。线性回归:线性回归通过一个或者多个自变量与因变量之间进行建模的回归分析。其中可以为一个或多个自变量直接的线性组合。(线性回归的一种)正规方程:4. List item梯度下降:就好比我们人下山坡,往下走就是函数下降的方向,学习速率就好比我们下山的速度。4.波士顿案例分析过程:波士顿地区房价数据获取数据分割训练、测试数据标准化线性回归估计房价演示结果:以下为源代码#波士顿房价预测from sklearn.da

2021-04-12 16:53:24 1871

Java八股文之JVM与多线程

该文主要讲解JVM和多线程相关内容,java八股文。

2022-11-27

多场景抽烟数行为据集,深度学习数据集

多场景抽烟数据集,可用于多个场景,内有两千多张以及标注好的xml,可用于深度学习。

2022-05-26

轻松上手mybatis

黑马v12.5讲解mybatis,轻轻松松上手mybatis。看着操作一遍,你就差不多了。从环境配置到动态条件查询到增删改再到注解实现CURD。

2022-05-21

java学习笔记.rar

Java基础部分笔记,封装多态继承模块类,异常和集合,IO类File类等学习笔记

2021-05-02

numpy+pandas+matplotlib+gis学习笔记.zip

Python学习计算工具Numpy,数据分析工具pandas,图标绘制工具matplotlib,空间分析工具GIS,基于Jupyter学习笔记

2021-05-02

java插件资源包.zip

适用20213月及以下版本

2021-04-17

微信小程序飞机大战.zip

微信小程序飞机大战.zip

2021-04-12

基于python的飞机大战.zip

基于python的飞机大战小游戏,导入pycharm便可以直接玩,可以使用epycharm修改游戏,按自己的思路继续开发制作,很值得初学者学习研究

2021-04-12

植物大战僵尸小游戏.rar

基于java的植物大战僵尸小游戏,导入eclipse便可以直接玩,可以使用eclipse修改游戏,按自己的思路继续开发制作,很值得初学者学习研究

2021-04-12

贪吃蛇小游戏java开发.rar

基于java的贪吃蛇小游戏,导入eclipse便可以直接玩,可以使用eclipse修改游戏,按自己的思路继续开发制作,很值得初学者学习研究

2021-04-12

stm32f429核心板.zip

stm32f429的pcb板子图

2021-04-12

空空如也

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

TA关注的人

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