<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[m0_49453728的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/m0_49453728</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_49453728]]></copyright><item><title><![CDATA[数据结构（自用）]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/122664836</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/122664836</guid><author>m0_49453728</author><pubDate>Mon, 24 Jan 2022 12:11:45 +0800</pubDate><description><![CDATA[数组与链表
数组
数组一般存储相同类型的数据，由连续的内存进行存储
数组非尾部的插入和删除比较复杂，因为还涉及其他所有项的移位
数组无法动态扩容（大小无法改变）
我们把数组称为顺序表
链表
链表查询的特点是从头开始依次（顺着指针域）查询，导致了效率低；链表的插入很快，但搜寻就很慢
单链表的删除需要知道：要删除的结点和上一个结点（前驱），需要对前驱的指针进行变更
头结点相当于一个固定的入口，不存储有意义的值
小总结
从下面可以得知，当进行查询操作用数组，插入和删除操作用链表

跳表
跳表(SkipList，全]]></description><category></category></item><item><title><![CDATA[无刷电机FOC控制（自己的理解，不一定正确，仅供参考）]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/121636705</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/121636705</guid><author>m0_49453728</author><pubDate>Tue, 30 Nov 2021 16:42:14 +0800</pubDate><description><![CDATA[无刷电机

概念辨析
无刷直流电机
无刷减速电机
直流无刷减速电机
1.减速：减速电机是指减速机和电机(马达)的集成体。这种集成体通常也可称为齿轮马达或齿轮电机。
2.无刷：无刷是直流电机的一个种类（直流电机分无刷和有刷）。常用的是有刷，无刷和有刷区别自行百度。
3.直流：电机在直流电下工作，与异步电机、同步电机在交流电下工作形成对比
4.电机：电机这个词本身指的是电动机、发动机和原动机等“动力设备”，不是单指电动机。生活中，我们所谓的电机绝大部分指的就是电动机。
5.马达：电机和马达是一个东西，马达是俗称]]></description><category></category></item><item><title><![CDATA[无刷电机与有刷电机]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/121575910</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/121575910</guid><author>m0_49453728</author><pubDate>Sat, 27 Nov 2021 13:24:53 +0800</pubDate><description><![CDATA[笔记来源
无刷电机（油管）
有刷电机（油管）
无刷直流电机

有刷直流电机运作时容易产生火花，不适应于长时间、高性能工作
无刷直流电机的转子是永磁铁

对线圈通直流电，线圈励磁成为电磁铁，它的运转基于永磁铁和电磁铁间的相互作用
运动的是转子，转子是在线圈外面一圈，是永磁铁在转
转子↓

缺点，只有一组线圈励磁，另外两组没有作用，功率很低
然后我们就想了一个办法去增强功率
法1：当转子到了一个线圈后，我们再对转子后面的一个线圈通电，目的是推动转子。对第二个线圈通相同方向的电流，产生叠加，产生更大转矩和输出功率]]></description><category></category></item><item><title><![CDATA[用MATLAB画线段（简单说）]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/120373080</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/120373080</guid><author>m0_49453728</author><pubDate>Sat, 18 Sep 2021 20:07:08 +0800</pubDate><description><![CDATA[前言
在网上找了很多相关的，但始终不大满意，所以就自己写一个，其实问题最终也没有解决，我的希望是用已知的两个点画一条直线，然后这条直线是无限长的，我拖拽窗口可以显示，但是最终用"3"解决，只能说够用，是一个遗憾吧。
代码解释
下面都是在命令行窗口使用的，没有去曲线拟合的APP使用，因为那个不能拖拽，很不爽
1.
line([1 1],[1 2]);	//用两个点画线，画出来的是线段。注意有时候太大了就不会显示了，我不知道为什么		
2.
line(x,y);
plot(x,y);		//单独使用两者作用相同]]></description><category></category></item><item><title><![CDATA[使用MATLAB进行曲线拟合（只说如何用）]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/120362556</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/120362556</guid><author>m0_49453728</author><pubDate>Sat, 18 Sep 2021 10:34:28 +0800</pubDate><description><![CDATA[曲线拟合
关于曲线拟合的意义我在最后给一个链接，下面只简单介绍如何使用
1.首先在命令行窗口输入数组，x，y
2.
找到APP按钮→curve Fitting（曲线拟合的英文）
3.点开后

x和y就选择刚才输入的数组就好，右边的选项意思是你要用什么算法进行曲线拟合，下面展示的是所有方法的中文释义
一般情况下我们选择“指数逼近”和“多项式逼近”这两种就够用了

结束

用到的资源：
MATLAB曲线拟合工具箱
曲线拟合_百度百科

...]]></description><category></category></item><item><title><![CDATA[C|如何将字符数字变成值相同的整数]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/119947835</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/119947835</guid><author>m0_49453728</author><pubDate>Fri, 27 Aug 2021 10:44:17 +0800</pubDate><description><![CDATA[把字符转换成值想通的整数需要用字符减去字符’0’
往往这里的转换还需要用到isdigit函数进行if判断，isdigit（s）作用检查s是否是数字0到9
char a = '1';
int b = a - '0' ;


相关资料

]]></description><category></category></item><item><title><![CDATA[对逐飞总钻风和龙邱神眼摄像头引脚的解读]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/119641873</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/119641873</guid><author>m0_49453728</author><pubDate>Thu, 12 Aug 2021 14:30:26 +0800</pubDate><description><![CDATA[逐飞总钻风

龙邱神眼（MT9V034）


行中断：其实两者都有点像使能位的感觉，都是一个许可。图像头在数据采集时发送行中断信号，作为可接受这一行数据的许可
场中断：场中断信号是图像信息开始的标志
行中断与场中断
像素时钟：只要是数字信息处理电路就必须要有时钟，而像素时钟的个数要与图像一行的像素点的个数相同，时钟相当于脉搏，是一个外设必备的
IIC总线SCL和SDA：这两根线都是I2C总线的信号线
数据口：用8位是因为里面的寄存器的位数

...]]></description><category></category></item><item><title><![CDATA[使用STC16F和STC8H的keil版本须知]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/119598974</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/119598974</guid><author>m0_49453728</author><pubDate>Wed, 11 Aug 2021 11:08:19 +0800</pubDate><description><![CDATA[keil版本
STC16F使用的keilC251，STC8G使用的是keilC51
因为两者的快捷启动方式的图标是相同的，都是
所以我们就要通过看开启keil后的启动图标来识别，下面展示的图标，第一个是C51，第二个是C251，在知道后我们可以把快捷启动方式的名字改成C51和C251方便区分



...]]></description><category></category></item><item><title><![CDATA[对龙邱科技TC264库的理解]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/119319440</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/119319440</guid><author>m0_49453728</author><pubDate>Mon, 02 Aug 2021 11:57:30 +0800</pubDate><description><![CDATA[命名规则
写工程时，到每个对应的.h里面找要用的函数

人机交互模块：
★OLED：OLED里面可以更改显示的中文，只不过要注意这里用的十六进制形式，可以通过PctoLCD2002去生成
中断
★GPIO：外部中断
★GPSR：软件中断
信息获取模块
★CAMERA：摄像头
控制模块
★GTM：PWM相关控制在GTM的文件内（LQ_GTM.c）
★GPT12_ENC：计数器
具体功能模块
★Imageprocess：图像

...]]></description><category></category></item><item><title><![CDATA[图像处理原理（入门）]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/119133808</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/119133808</guid><author>m0_49453728</author><pubDate>Tue, 27 Jul 2021 09:53:39 +0800</pubDate><description><![CDATA[图像处理原理
1.一幅图像实际上记录的是物体辐射能量的空间分布，空间分布表示为函数I（x，y，z，λ，t），空间坐标、波长和时间，当图像为平面单色静止图像时，波长和时间可以去掉，只剩下空间坐标，甚至因为平面，z也去掉，用二维函数f（x，y）表示
2.单色图像，它的图像值为灰度级，正比于光源的辐射能量
3.数字图像可以理解为对二维函数f（x，y）进行采样和量化（离散处理）后的图像，所以二维矩阵可以表示一幅数字图像。所以给我们一张图片，我们对它进行数字化就是用计算机生成二维矩阵。三步走，扫描→采样→量化
遍历扫]]></description><category></category></item><item><title><![CDATA[Qt5.9.4下opencv编译error：Noopencv2\opencv.hpp: No such file or directory（无法打开包括文件）]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/119107633</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/119107633</guid><author>m0_49453728</author><pubDate>Mon, 26 Jul 2021 13:33:35 +0800</pubDate><description><![CDATA[错误的原因是戏剧性的，Qt是一个高度依赖路径，其实很多软件都是如此。windows的手动去“我的电脑”找目标文件路径在D：xxx这个xxx前是没有/的，而这里是需要的，要改为D：/xxx。
这个地方↓↓↓



...]]></description><category></category></item><item><title><![CDATA[我眼中的PID]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/119063291</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/119063291</guid><author>m0_49453728</author><pubDate>Sat, 24 Jul 2021 20:13:31 +0800</pubDate><description><![CDATA[我眼中的PID

PID控制技术是在控制领域里很经典一种闭环控制技术。因为它足够简单但又有效，所以被广大学者学习使用。
开环是没有存在反馈调节的（反馈由编码器实现），闭环是有的，所谓的反馈调节以加热水为例，目前20度，目标100度，差80度要加热快一点，而当80度的时候要加热慢一点。
所谓PID，即比例Proportion、积分Integral 和微分Derivative 三个单词的缩写。PID又分为位置式和增量式，位置式PID： 
增量式PID： 
常用：转向用位置式，控速用增量式（不绝对），其实很多时候]]></description><category></category></item><item><title><![CDATA[（C）读入若干行字符（每行不超过80个），写入到文本文件中]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/118308470</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/118308470</guid><author>m0_49453728</author><pubDate>Mon, 28 Jun 2021 17:28:16 +0800</pubDate><description><![CDATA[要注意的是输入的时候需要手动结束按住Ctrl+Z，再按回车
#include&lt;stdio.h&gt;
int main(void)
{
	int i,N=0;
	char c[81];
	FILE *fp;
	
	/*文件处理的过程为打开文件→读、写文件→关闭文件*/
	
	fp=fopen("E:\\a.txt","w");	//打开的文件地址，以只写形式，若已存在则刷新已有文件
	
	/*读入若干行不用for，for是指定次数的输入，转而采用while*/
		while(gets(c)){
		]]></description><category></category></item><item><title><![CDATA[（C）编制函数，在主调函数的一维数组中查找最大值及该元素下标、最小值及该元素下标]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/117881438</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/117881438</guid><author>m0_49453728</author><pubDate>Sun, 13 Jun 2021 17:01:22 +0800</pubDate><description><![CDATA[#include&lt;stdio.h&gt;
int main(void)	//主调函数 
{
	int b[999];
	int n,i;
	int max,k;		 
	
	void findmax(int *a,int n);
	void findmin(int *a,int n);
	
	printf("请输入你要测试的数字个数\n");
	scanf("%d",&amp;n);
			
	for(i=0;i&lt;n;i++)
		scanf("%d",&amp;b[i]);
		
	findm]]></description><category></category></item><item><title><![CDATA[（C）（指针）编制函数，输入十个数，按绝对值从小到大排序后输出]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/117879145</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/117879145</guid><author>m0_49453728</author><pubDate>Sun, 13 Jun 2021 15:52:59 +0800</pubDate><description><![CDATA[#include&lt;stdio.h&gt;
#include&lt;math.h&gt;
int main(void)
{
	int i,j,k,a[11],temp,*p=a;		//初始化指针 ，a是数组首地址 
	
	for(i=0;i&lt;10;i++){
		scanf("%d",p+i);
	}
	
	
	for(i=0;i&lt;9;i++){
		k=i;
		for(j=i+1;j&lt;10;j++)	if(fabs(a[j])&lt;fabs(a[k]))	k=j;
		temp]]></description><category></category></item><item><title><![CDATA[（C）编制函数，接受从主调函数传入的、有n个元素的一维数组的地址，对该数组按绝对值从小到大排序]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/117827095</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/117827095</guid><author>m0_49453728</author><pubDate>Fri, 11 Jun 2021 21:25:58 +0800</pubDate><description><![CDATA[#include&lt;stdio.h&gt;
#include&lt;math.h&gt;

/*主函数用于传入指针的地址数据*/
int main(void)
{
	void sort(float a[],int n);		//自定义函数在主函数后面的情况下需要声明 
	
	int i,n;
	printf("请输入数组的长度\n");
	scanf("%d",&amp;n);
	float b[999];
	
	for(i=0;i&lt;n;i++)
		scanf("%f",b+i);
	
	sor]]></description><category></category></item><item><title><![CDATA[（C）输入4行字符，每行不超过60个字符，将其中所有的字符‘$’改作‘S‘]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/117826239</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/117826239</guid><author>m0_49453728</author><pubDate>Fri, 11 Jun 2021 20:05:02 +0800</pubDate><description><![CDATA[#include&lt;stdio.h&gt;
#include&lt;string.h&gt;
int main(void)
{
	char str[4][61],temp;	
	int i,j;
	
	for(i=0;i&lt;4;i++) 
       while(gets(str[i]), strlen(str[i])&lt;1);
	
	for(i=0;i&lt;4;i++)	 
		for(j=0;j&lt;=strlen(str[i]);j++)
		{
			if(str[i][j]==']]></description><category></category></item><item><title><![CDATA[（C）输入一个字符串（串长不超过60），删除字符串中所有的空格符]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/117826219</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/117826219</guid><author>m0_49453728</author><pubDate>Fri, 11 Jun 2021 20:02:59 +0800</pubDate><description><![CDATA[#include&lt;stdio.h&gt;
int main(void)
{
	char a[61],b[61];			
	int i,j=0,k=0;
	
	gets(a);
	
	for(i=0;i&lt;61;i++)	
	{
		if(a[i]!=' ')	
		{ 
				b[k]=a[i];
				k++;			
		}
	}
	
	puts(b);
} 


]]></description><category></category></item><item><title><![CDATA[（C）输入一个5行、6列的数组，将每1行的所有元素都除以该行上绝对值最大的元素，然后输出数组]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/117744523</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/117744523</guid><author>m0_49453728</author><pubDate>Wed, 09 Jun 2021 15:33:42 +0800</pubDate><description><![CDATA[#include&lt;stdio.h&gt;
#include&lt;math.h&gt;	//绝对值函数在math头文件里面包含了,abs和fabs都是求绝对值的现成函数，abs用于int,fabs用于double(指返回值)

int main(void)
{
	double a[5][6],max[5];	//max长度为行数，每一行存一个 
	int i,j;	//i是行,j是列
	max[0]=a[0][0];
	/*******************输入*************/ 
	fo]]></description><category></category></item><item><title><![CDATA[（C）什么是同构数]]></title><link>https://blog.youkuaiyun.com/m0_49453728/article/details/116130751</link><guid>https://blog.youkuaiyun.com/m0_49453728/article/details/116130751</guid><author>m0_49453728</author><pubDate>Sun, 25 Apr 2021 15:38:49 +0800</pubDate><description><![CDATA[什么是同构数：
比方说一个数x，x的平方的后几位和x是一样的。
例：5的平方25，尾部为5，而原数一样；6的平方36，尾部6和原数6一样。
例题：输出1到5000内的同构数
#include&lt;stdio.h&gt;
int main(void)
{
	int i,x;			//同构数：它本身的平方后，尾部值也为它本身
	
	for(i=1;i&lt;=5000;i++){
		x=i*i;
		if(x%10==i||x%100==i||x%1000==i)	
			printf("%d\n",i);]]></description><category></category></item></channel></rss>