- 博客(29)
- 收藏
- 关注
原创 tftp: server error: (2) Access violation
后面走了一圈之后才发现,原来是自己吧这个文件用WPS打开了。导致外部无法直接替换这个文件,猜测应该是WPS那边打开的时候不允许直接修改外部的源文件。完全没有思路,而且我是在root用户下操作的,权限应该影响不了,看这个宝错因该和文件没什么关系,不用强行给文件添加名字,
2024-02-27 15:11:28
459
原创 L2TP协议的相关内容
该协议主要用于设备和VPN发送认证信息后并获取服务器分配的IP,后续使用这个IP进行内网资源的访问。一般设备会通过网络进行拨VPN,我们只需要使用tcpdump进行抓包即可:随便点开一个数据包,就可以知道他是基于UDP协议的,换句话说,UDP协议就是负责承载它的后续通过连接上 VPN服务器的设备也是可以看到的其次报文封装格式:注意:L2TP这里分为控制协议和数据协议。
2024-02-05 11:05:12
1051
原创 usb usb1-port2: disabled by hub (EMI?), re-enabling...
最近在测试LTE modem链接稳定性的时候,需要长期挂测,LTE modem在系统层生成RNDIS的网卡。可以看见,上图中有一个名为 usb0的RNDIS网卡,另外有三个ttyUSB设备,参照Modem的指导文档,得知其中只有一个TTYUSB可以用于AT指令调试以及modem 拨号。
2024-01-23 15:37:46
1657
3
原创 LInux 适配USB 转以太网设备-------初窥
我采用的是AX88772B USB 2.0转10/100M百兆以太网设备;AX88772B是一款高集成度且性能卓越的低功耗USB 2.0转10/100M百兆以太网控制芯片,可为各类应用增加低成本、小封装、即插即用的百兆以太网连网特性,可用于台式电脑、笔记本电脑、超便携电脑、托架/端口复制器/扩展坞、游戏机、智能家居及任何有USB接口的嵌入式设备。
2023-10-18 11:35:20
1237
转载 MobaXterm 连接Ubuntu:Connection Refused、 Access denied
MobaXterm 连接Ubuntu:Connection Refused、 Access denied
2022-08-28 17:47:55
5037
原创 stm32F103C8T6 USB转ttl接线与串口调试
将USB中的接线端与板子上的对应接口相互连接,由于我的USB只有5针,所以不会涉及到在此处用短接线帽。其中的电源与接地对应相连接,但是再接收与发送端要错开相接,其中TXD --RXD;RXDTXD之后就可以打开代码烧录助手,我用的是flymcu,设置好对应的参数及其端口之后:但是后面会发现:(一直烧录不进去)后面上了查找了多方资料,总算找到了,需要将板子上的boot 0先置1,才能够进行代码烧写:烧录结束之后,又得将boot0 重置为0 ...
2022-04-13 16:00:31
20342
7
原创 keil mdk V5.36下修改stm的Xtal
在该版本下的选择框中,发现Xtal这一栏并不能被修改,查看了相关的问题,才知道官方在这个版本中已经不支持直接在选择栏中来修改。后面通过查询其启动文件,systeminit(),来查找相关时钟的配置信息在systeminit()下面会有一个时钟配置的函数:Setsysclock()之后继续转到其定义的地方,查看该函数的详细介绍最终找到关于stm32中的时钟频率的详细定义默认是72MHZ, 由于此时需要内部产生时钟频率,并结合下图,可知应该让HSI被定义...
2022-04-10 19:50:22
8615
4
原创 stm32 创建项目发生错误
../Libraries/CMSIS/core_cm3.h(1720): warning: function 'NVIC_SystemReset' could be declared with attribute 'noreturn' [-Wmissing-noreturn]遇到这种情况,直接将只需要在keil设置里把版本从keil_6变成keil_5如果报了很多错误,记得设置包含路径...
2022-04-09 17:49:53
1162
1
转载 User/main.c(10): warning: no previous prototype for function ‘SystemInit‘ [-Wmissing-prototypes]
跟着一个博主学stm32 ,写的程序如下:当时编译无法通过:报错原因如下:(SystemInit没有声明)后面在启动文件中也确实看到了SystemInit的调用过程:后面导入了该函数声明的地方——stm32f10x.h(末尾解释为什么是这个文件)后面找了一些资料,发现更简洁的方法。后面通过查看到一位博主的博客:(43条消息) 2021-07-20warning: no previous prototype for function ‘SystemInit‘ ..
2022-04-09 17:46:30
1418
原创 二叉树的层次遍历
实现方式:主要采用队列实现(利用其FIFO的特性);因此需要设计头指针、尾指针#include <stdio.h>#include <stdlib.h>typedef struct treenode { char date; struct treenode* lchild; struct treenode* rchild;}Tree;typedef struct node { Tree* node; struct node*.
2022-03-20 09:48:22
624
原创 leecode :加一
第一种思路:int* plusOne(int* digits, int digitsSize, int* returnSize){ int i=0; int* arr=NULL; int ret=0,div=0,j=-1; ret=(digits[digitsSize-1]+1)%10;//先处理最低位的进位和余位 div=(digits[digitsSize-1]+1)/10; digits[digitsSize-1]=ret; for(i..
2022-03-14 11:07:39
134
原创 二叉平衡树
#include <stdio.h>typedef struct tree { int val; struct tree* left, *right;}Btree,*BT_point;//int creat_tree(BT_point* L)//{// char ch;// scanf("%c", &ch);// if (ch == '#')// (*L) = NULL;// else// {// .
2022-03-08 15:50:44
430
原创 删除字符串中出现次数最少的字符
int main(){ char arr[20] = { 0 }; char hash[26] = { 0 }; gets(arr); int len = strlen(arr); int i = 0, asc = 0, min = 999; for (i; i < len; i++) { asc = (int)arr[i];//将每个字符映射到对应的哈希表中,并记录下该字符出现的次数 hash[asc-9...
2022-03-05 19:49:56
134
原创 直接选择排序
void swap4(int arr[], int x, int y){ int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp;}void quick_order(int arr[], int x){ int i = 0; for (i; i < x; i++) { int temp = i; int j = i; for (j; j < x;...
2021-11-13 16:56:24
679
原创 数组的堆排序
堆排序就是将一个数组利用大根堆、小根堆(完全二叉树)的思想来对数组排序。大根堆:父节点的值大于等于子节点;小根堆:父节点的值小于或等于子结点因为完全二叉树的编号正好可以和数组的编号一一对应,这就将对数组的排序转化到了对二叉树的排序。因此我们就可以将一个任意的数组生成一个完全二叉树 利用小根堆或者大根堆的定义,可以看出他是阐述的关于父节点以及子节点之间的关系。因此在进行排序的时候,二叉树中的叶子节点就不用考虑,而是考虑内部结点以及根节点。在比较的...
2021-11-13 13:17:05
2121
1
原创 C语言快速排序
快速排序就是找随意找一个数,然后将剩余的元素按照与之的大小关系来排列在左右边。首先将找出来的那个元素放在下标为0的位置。此时我将第一个元素放在0处(将其称为核心数),之后就得先从右边开始遍历,这样便于将小于8的元素放在左边,之后右边空出位置,也就便于将左边大于8的元素放在右边。还有就是只有不涉及到元素位置交换的时候,就移动下标,来去寻找需要移动的元素。只有当L=R时候,才能够找到那个唯一合适的位置,否则都要循环之前的步骤。然后进行比较,因为11、13都大于8,就不移动,但是R--,当4&..
2021-11-12 16:53:40
1023
原创 直接插入 、折半查找、希尔排序
直接插入法主要就是从第一个元素开始,通过比较该元素与前面元素的大小关系来确定其合适的位置,从而实现有序排列。折半查找法的思想是从第二个元素开始,为其在前面的有序序列中寻找合适的位置...
2021-11-12 15:10:12
514
原创 C语言实现树的创建,递归遍历
主要是传递指针。因为传递指针的时候,相当于是在初始化的时候创建,参照链表的初始化,就是传递的二级指针,否则会提示你传入的变量没有被初始化int Create_tree(treePtr *L){ char ch; scanf("%c", &ch); if (ch == '#') { (*L)=NULL; } else { (*L) = (treePtr)malloc(sizeof(Treenode)); if (!(*L)) { return ERROR;/
2021-11-11 21:13:00
1874
原创 C语言实链队
源代码如下://链队(尾插法,和头弹出,头删除法;需要设立头节点——频繁的加入、退出#include <stdio.h>#include <stdlib.h>#define SIZE 10#define ERROR 0#define OK 1#define OVERFLOW 999#define ElemType inttypedef struct Node{ ElemType data; struct Node* next;}QueneNode,*Q.
2021-11-07 16:18:53
996
原创 C语言实现顺序表自由插入、自由删除
今天在实现顺序表的时候,就想着实现以下自由个数的元素的插入、删除;不知道写的对不对,还请大家帮忙看看(这些就是在插入,删除中添加了循环,我只是觉得像之前那样频繁调用函数来实现元素的删除、插入很麻烦)(代码中所指插入的位置就是将这一位来存放该元素,还有就是输入的位置的数字是站在用户角度,所以会比实际存储的下标大1)//动态顺序表的实现#include <stdio.h>#include <stdlib.h>#define ElemType int#define O..
2021-11-05 21:14:08
506
原创 链队销毁遇见的问题
今天写到这个部分的时候,不知道为什么,一直出现错误:先把我的源代码放上来:#include<stdio.h>#include <stdlib.h>#define SIZE 10#define OK 1#define FALSE 0typedef int ElemType;typedef struct node{ ElemType data; struct node* next;}Qnode,*QnodePtr;typedef struct{...
2021-11-02 19:54:34
122
原创 C语言实现链栈,遇到了问题
采用了C语言来构建无头结点的链栈:#include <stdio.h>#include <stdlib.h>#define SIZE 10#define OK 1#define FALSE 0typedef int ElemType;typedef struct node{struct node* next;int data;}Snode,*SnodeL;//初始化int Snode_init(SnodeL *L)//传入相当于头指针的二级...
2021-11-02 14:14:19
385
原创 结构体一定要先声明,再使用
初入C没多久,记录下自己的错误点滴。今天早上写代码的时候,出现了这样的一幕:当时疑惑万分,按照自己的思路理解下来完全没有问题啊(这是个致命的错误,我们应该站在机器的角度考虑);仔细阅读一下错误信息,发现结构体未定义。当时内心一万个疑惑,下面不就有吗?想了一段时间,既然没定义,是不是顺序靠后了导致的,结果尝试过后,完美解决问题。机器执行代码的数据顺序是从上而下,所以在第一次编译的时候,没有找到定义的结构体而导致的错误。summary:不能只站在自己的角度去看待问题,哈哈...
2021-10-30 12:25:07
1196
原创 线性表的合并
写这个代码的过程中,一旦涉及到对原表中的元素进行修改(增加、减少)的操作的时候,在传递变量的时候,一定要传递变量地址。//线性的合并#include <stdio.h>#include <stdlib.h>#define SIZE 100typedef int ElemType;typedef struct{ ElemType* elem; int length; int real_len;}SqList;//initialint Sq...
2021-10-30 12:22:26
2665
原创 用线性表实现有序表的合并
#include <stdio.h>#include <stdlib.h>#define SIZE 100typedef int ElemType;typedef struct{ElemType* elem;int length;int real_len;}SqList;//initialint SqL_INIT(SqList* L){L->elem = (int*)malloc(sizeof(int) * SIZE);...
2021-10-30 10:52:16
209
原创 对结构体数组数组进行赋值
在对结构体变量中的一个成员进行赋值时,发现不能够正常赋值,查看了下访问方式,指针->成员名也没有问题,后面猛然醒悟:对于字符数组的“赋值”可不能这么简单,首先其数组名指代首元素地址,首先这个地址所指向的内存空间能否放下源变量就成了一个问题,所以可以用字符串拷贝的方法完美解决...
2021-10-18 20:04:49
1659
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人