自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(170)
  • 资源 (1)
  • 收藏
  • 关注

原创 基于STM32F4单片机对步进电机的控制(有代码)

步进电机是将电脉冲控制信号转变为角位移或线位移的一种常用的数字控制执行元件,又称为脉冲电机。在驱动电源的作用下,步进电机受到脉冲的控制,其转子的角位移量和速度严格地与输入脉冲的数量和脉冲频率成正比。步进电机每接收一个电脉冲,转子就转过一个相应的角度(步距角)。改变通电顺序可改变步进电动机的旋转方向;改变通电频率可改变步进电动机的转速。因此,通过控制输入电脉冲的数目、频率及电动机绕组的通电顺序就可以...

2018-08-30 10:46:40 90538 115

原创 基于STM32F103智能小车黑线寻迹运动实验(有代码)

小车设计利用STM32作为智能小车的主控制器来驱动智能小车的直流电机工作,电机驱动芯片采用L298N微型集成电路电机驱动芯片,配合STM32核心板使用实现四个直流电机运行和pwm软件调速,通过改变直流电机占空比的电压来改变平均电压的数值,从而改变电机的转速变化来驱动轮式机器人运行。轮式机器人行驶的状态有:前进、后退、左转、右转和停止。当轮式机器人在行驶过程中遇到障碍物,红外避障检测模块检测周围障碍物,轮式机器人自动停止或转向。通过WIFI无线信号作为传输媒介,以上位机或手机作为控制端来控制机器人的运动以及

2020-12-16 12:44:28 15596 5

原创 基于STM32智能小车蓝牙遥控实验(有代码含上位机)

蓝牙•蓝牙( Bluetooth® ) : 是一种无线技术标准,可实现固定设备、 移动设备和楼宇个人域网之间的短距离数据交换(使用2.4—2.485GHz的ISM波段的UHF无线电波) 。 蓝牙技术最初由电信巨头爱立信公司于1994年创制, 当时是作为RS232数据线的替代方案。 蓝牙可连接多个设备, 克服了数据同步的难题。如今蓝牙由蓝牙技术联盟(Bluetooth SpecialInterest Group, 简称SIG) 管理。 蓝牙技术联盟在全球拥有超过25,000家成员公司, 它们分布在电信、计

2020-11-05 19:34:55 16800 90

原创 基于STM32小车超声波避障实验(有代码)

超声波避障代码#include "sys.h" #include "delay.h" #define EN1 PAout(2) //L293D控制管脚定义#define IN1 PAout(3) //L293D控制管脚定义#define IN2 PAout(4) //L293D控制管脚定义#define EN2 PAout(7)

2020-11-04 21:08:18 10984 10

原创 基于STM32F407图片显示实验(有代码)

一、实验目的在开发产品的时候,很多时候,我们都会用到图片解码,本次实验介绍如何通过 STM32F4 来解码 BMP/JPG/JPEG/GIF 等图片,并在 LCD 上显示出来。二、图片格式简介我们常用的图片格式有很多,一般最常用的有三种: JPEG(或 JPG)、 BMP 和 GIF。其中JPEG(或 JPG)和 BMP 是静态图片,而 GIF 则是可以实现动态图片。首先,我们来看看 BMP 图片格式。 BMP(全称 Bitmap)是 Window 操作系统中的标准图像文件格式,文件后缀名为“.b

2020-09-20 13:19:13 9489 4

原创 基于STM32红外避障小车的设计(有代码)

什么是避障小车用红外光电传感器,探测到物体即输出脉冲,输入到单片机中处 理一下,再对电机驱动模块进行控制,实现壁障的功能,这样的避障小车又称为简单的避障机器人。各种避障方法:1、红外线避障 2、超声波避障红外避障原理基本硬件 红外发射管和接收管:分离式和一体式变送电路:模拟量;数字量:将模拟量经过比较器输出开关量选择模块简介:不怕光HJ-IR2传感器 • 1、HJ-IR2相当于一个红外电子开关,检测到障碍输出低电平,平 时高电平。。 • 2、前方有障碍物时,红外管发出的红外信号经红外接收

2020-06-15 13:26:03 29763 47

原创 基于STM32F407无线通信实验(有代码)

引言STM32F4 开发板带有一个无线模块(WIRELESS接口,采用 8 脚插针方式与开发板连接,可以用来连接 NRF24L01/RFID 等无线模块。本次实验将以 NRF24L01模块为例介绍 STM32F4 开发板上实现无线通信。在本次实验中,我们将使用两块探索者 STM32F4 开发板,一块用于发送收据,另外一块用于接收,从而实现无线数据传输。1 NRF24L01 无线模块简介NRF...

2020-03-25 21:52:28 5878 1

原创 基于STM32F407摄像头实验(有代码)

1.OV2640 简介OV2640 是 OV(OmniVision)公司生产的一颗 1/4 寸的 CMOS UXGA(16321232)图像 传感器。该传感器体积小、工作电压低,提供单片 UXGA 摄像头和影像处理器的所有功能。通 过 SCCB 总线控制,可以输出整帧、子采样、缩放和取窗口等方式的各种分辨率 8/10 位影像 数据。该产品 UXGA 图像最高达到 15 帧/秒(SVGA 可达 3...

2020-02-25 22:19:24 12774 6

原创 基于STM32F407单片机对双直流电机的pid闭环控制(有代码)

直流电机简介直流电动机是将直流电能转换为机械能的电动机。因其良好的调速性能而在电力拖动中得到广泛应用。直流电动机按励磁方式分为永磁、他励和自励3类,其中自励又分为并励、串励和复励3种。当直流电源通过电刷向电枢绕组供电时,电枢表面的N极下导体可以流过相同方向的电流,根据左手定则导体将受到逆时针方向的力矩作用;电枢表面S极下部分导体也流过相同方向的电流,同样根据左手定则导体也将受到逆时针方向的力矩...

2020-01-05 15:55:13 11637 7

原创 力扣112. 路径总和

题目:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / ...

2019-09-19 22:48:23 448

原创 力扣108. 将有序数组转换为二叉搜索树

题目:将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -1...

2019-09-17 15:29:07 514

原创 力扣28. 实现 strStr()

题目:实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = ...

2019-09-17 13:26:15 421

转载 Linux应用层与内核层交互的几种方式

1)用户程序通过调用KERNEL系统接口, 即通过系统调用的方式,触发与内核的通信。Linux系统下,设备即文件,也因此大部分设备驱动程序都实现了标准的系统接口,如open(),read,write, ioctl(), mmap()等等。(2)通过proc文件系统进行通信。很多内核程序细节,如中断等,都在proc/目录下有所体现。proc存在提供了一种便捷的用户空间和内核空间的交互方式;(3)...

2019-08-27 11:25:17 5586

转载 堆和栈的区别是什么?

首先,讨论的堆和栈指的是内存中的“堆区”和“栈区”,OC语言是C语言的超集,所以先了解C语言的内存模型的内存管理会有很大的帮助。C语言的内存模型分为5个区:栈区、堆区、静态区、常量区、代码区。每个区存储的内容如下:1、栈区:存放函数的参数值、局部变量等,由编译器自动分配和释放,通常在函数执行完后就释放了,其操作方式类似于数据结构中的栈。栈内存分配运算内置于CPU的指令集,效率很高,但是分配的内存...

2019-08-26 22:03:00 339

原创 二叉树代码

#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<error.h>typedef struct TreeNode{ char data; struct TreeNode *lchild,*rchild;}TreeNode,*Tree;//构建二叉树Tree C...

2019-08-23 13:51:01 200

原创 【剑指offer】——数字序列中某一位的数字

题目:数字序列中某一位的数字数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数求任意位对应的数字。主要思路:举例分析,比如找第1001位数字,1)1位数的数值有10个:0~9,数字为10×1=10个,显然1001>10,跳过这10个数值,在后面找第991(1001-...

2019-08-21 16:42:39 180

原创 【剑指offer】——整数中1出现的次数(从1到n整数中1出现的次数)

题目描述求出113的整数中1出现的次数,并算出1001300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。解答:#include<stdio.h>#include&lt...

2019-08-21 11:56:07 203

原创 字符串移位操作

#include<stdio.h>#include<stdlib.h>int main(){ char *str="1234";//左移一位 printf("%d\n",atoi(str+1)); return 0;}

2019-08-21 10:56:59 875

原创 【剑指offer】——连续子数组的最大和

题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列...

2019-08-21 10:14:10 135

原创 【剑指offer】——顺时针打印矩阵

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。解答:#include<stdio.h>#include<stdbool.h>#define true 1#define false 0bool...

2019-08-20 18:10:56 153

原创 【剑指offer】——顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.解答:#include<stdio.h>void PrintCircle(int num[3][3]...

2019-08-20 15:23:47 198

原创 【剑指offer】——对称的二叉树

题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的解答:struct TreeNode{ int val; struct TreeNode* left; struct TreeNode* right;};//定义树的结构bool isSymmertrical(TreeNode* pRoot){ return i...

2019-08-20 11:53:42 139

原创 【剑指offer】——二叉树的镜像

题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5解答:...

2019-08-20 11:23:39 140

原创 【剑指offer】——树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) struct TreeNode {double val;struct TreeNode *left;struct TreeNode *right; };解答://判断两个结点的值是否相等,注意是double型bool Equal(double nu...

2019-08-20 10:54:54 135

原创 【剑指offer】——合并两个排序的链表

题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。ListNode* Merge(ListNode* Head1,ListNode* Head2){ if(Head1==NULL) return Head2; if(Head2==NULL) return Head1; ListNode* pMerge=NULL; //用递归的...

2019-08-19 14:55:13 150

原创 链表代码(完整)

#include<stdio.h>#include<malloc.h>#include<stdbool.h>//定义链表typedef struct ListNode{ int val; struct ListNode* next;}ListNode;//链表初始化ListNode* CreateList(){ ListNode* Hea...

2019-08-19 14:23:48 11198 3

原创 【剑指offer】——反转链表

题目描述输入一个链表,反转链表后,输出新链表的表头。解答:#include<stdio.h>#include<malloc.h>typedef struct ListNode{ int val; struct ListNode* next;}ListNode;//利用一个数组,建立链表ListNode* creatlinkistR(ListN...

2019-08-19 10:53:35 153

原创 N个数(其中数可重复),求出其中第m大的数。

题目:N个数(其中数可重复),求出其中第m大的数。#include<stdio.h>int Maxm(int *number,int m){ if(number==NULL) return 0; int length=5; int i=0; for(i;i<length;i++) { int j=0; for(j;j<length-i-1;j...

2019-08-18 20:46:41 1305

原创 从字符串中“aecbcda”找出不重复的字符组成的顺序子串“aecbd”

题目:从字符串中“aecbcda”找出不重复的字符组成的顺序子串“aecbd”,用最优的时空复杂度。 答题说明:该题为手动判卷,答案只要写对即可,不用严格满足字符比对。解答:#include<stdio.h>#include<string.h>#include<malloc.h>char* LongString(char* str,int lengt...

2019-08-18 20:26:22 637 1

原创 【剑指offer】—— 链表中环的入口结点

题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。解答://链表结构struct ListNode{ int val; struct ListNode* next;};//找到相遇结点//快指针一次走两步,慢指针一次走一步//若两个指针相遇则存在环,若快指针走到NULL,则无环ListNode* MeetingNode(ListNode* he...

2019-08-18 17:09:09 157

原创 【剑指offer】——链表中倒数第k个结点

问题:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。解答:#include<stdio.h>typedef struct ListNode{ int val; struct ListNode...

2019-08-18 11:14:16 134

原创 【剑指offer】——调整数组顺序使奇数位于偶数前面

题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解答:#include<stdio.h>void ReorderOdd(int *data,int length){ if(data==NULL||length<0) return; /...

2019-08-18 10:30:14 152

原创 一级指针与二级指针

一、一级指针如下图所示,整型指针xptr指向变量x的地址。int *xptr;int x=10;xptr = &x;源码:#include <stdio.h>int main(){ int *xptr = NULL; int x = 10; xptr = &x; printf("x = %d, *xptr...

2019-08-17 23:34:36 3154 1

原创 【剑指offer】——表示数值的字符串

题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。解答:#include<stdio.h>#include<stdbool.h>//判断是否是0~9之间的数,//...

2019-08-17 22:57:27 190

原创 【剑指offer】——正则表达式匹配

题目描述请实现一个函数用来匹配包括 ‘.’ 和 ‘’ 的正则表达式。模式中的字符 ‘.’ 表示任意一个字符,而 ‘’ 表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配解题 #include<stdio.h> #include<s...

2019-08-16 18:40:42 183 1

原创 【剑指offer】——删除链表的重复节点

题目描述在排序链表中,删除链表的重复节点。解答:struct ListNode{ int val; ListNode* next;};void DeleteDup(ListNode** pHead){ //如果为空表 if(pHead==NULL||*pHead==NULL) return; //删除节点前一节点 ListNode*...

2019-08-16 16:46:57 120

原创 【剑指offer】——删除链表的节点(时间复杂度为O(1))

题目:删除链表的节点(时间复杂度为O(1))解答:struct ListNode{ int val; ListNode * next;};void DeleteNode(ListNode** pHead,ListNode* pToBedelete){ //链表为空或删除节点为空 if(!pHead||!pToBedelete) retur...

2019-08-16 15:05:53 378

原创 【剑指offer】——数值的整数次方

题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。解答#include<stdio.h>#include<stdbool.h>bool flag=false;double Power(double number,int exponent){ double result = 1.0;...

2019-08-16 10:46:45 238

原创 【剑指offer】——重建二叉树

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解答:struct BinaryTreeNode{ int Value; BinaryTreeNode Left; Binar...

2019-08-16 09:53:11 166

原创 【剑指offer】——二进制中1的个数

题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解答:一、将这个数进行位操作(有益处风险)#include<stdio.h>int Number1(int n){ int count=0; while(n) { if(n&1) count++; n=n>&...

2019-08-15 17:09:18 141

stm32单片机控制步进电机

利用单片机控制基于STM32F4芯片的步进电机定位控制系统的整体设计思路以及用pwm实现对步进电机控制的脉冲时序的分配进行了详细的仿真。利用STM32F4芯片严谨的基于硬件的编程语言和精确的时间控制特点,准确地实现了精确定位功能,对步进电机的运行速度的精确控制。实践证明,这种方法定位准确,控制速度精确,是一种行之有效的方案。

2018-09-03

空空如也

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

TA关注的人

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