自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vscode通过ssh连接虚拟机进行开发

1.VSCODE安装扩展Tabnine(AI代码补全),Remote Development。在网上看SSH协议其实像加密的TCP协议(传输层协议),用于进程间通信。连接上就去ubuntu上建立vscode的工作区,把不需要的文件夹去掉。虚拟机自带的vscode很卡而且画质感觉不行,所以用这种方法解决。SSH还可以用下面这个软件去映射linux的文件。配置vscode的ssh config。host和name都可以通过命令查询。开启ubuntu的SSH服务。也可以在当前终端写命令。

2024-12-05 19:39:00 275

原创 面向对象思想和面向过程思想分析

所以崽这个类的实例是大学生和小学生,大学生和小学生是不同的对象,他们的写作业的方法不一样,但是写代码的时候只需要调用写作业这个方法就行了。面向过程需要的参数很多,面向对象需要的参数就是对象(类的实例-结构体),这样后续需要加某些属性,比如洗衣机的容量,直接在对象的定义处添加即可,不需再在函数的定义上添加。继承:就是定义类的时候,继承父类的属性,减少代码冗余,比如大学生和小学生都是学生,他们有学生的共同属性(如学号、班级等),这时候继承父类(学生)即可,不需要重复 定义。面向对象,这样看着更清晰。

2024-10-27 17:20:51 306

原创 嵌入式栈溢出怎么办?

在写文件的时候,因为把FATFS这些数据结构定义在了函数里,所以栈溢出了,我把比较大的数据结构放在全局变量上,就没事了.目前仅测试阶段,也可以放在堆里.不用的时候释放掉,减少耦合度.或者加static.

2024-09-13 15:52:23 227

原创 串口接收不到数据之电阻虚焊bug分析思路

单片机和EC移远通信模块进行通信,相同的代码运行在相同的硬件上,但是一个能联网,一个因为没有EC的应答连不上网。说要不响不代表两个模块的串口引脚没有连接,实测,YF08E的左侧和EC模块是通的,蜂鸣档响。YF08E的右侧和单片机是通的。检查单片机的连线发现,EC模块和单片机之中间夹着8位移位器YF08E,看了下他的作用。排除情况2,因为在EC模块上电的时候,能收到EC的准备命令RDY。这里飞线可以正常同学排查EC模块本身问题,用万用表的蜂鸣器档测。发现EC的接受引脚和单片机的引脚没有蜂鸣器响的声音。

2024-09-11 19:55:38 560

原创 时间戳和日期相互转换+检验日期合法性功能C语言

时间戳和日期相互转换+检验日期合法性功能

2024-09-09 16:48:10 410

原创 程序员如何写笔记并整理资料?

这样就能看到XYD期间的更改,从而一步步进行审查,可以拒绝更改过允许更改。全部检查完毕,就可以把XYD期间这份word删除掉,保持word最新唯一性。存在自己的固态硬盘,确保自己的固态硬盘只存最新的。当然有钱直接开个腾讯文档会员小200块一年,也是可以的。没错,我也看了网上一大堆软件,还有git管理等等。个人认为如果笔记只是记录个人的经验积累,一个word就够了,那些notepad,laTex个人觉得不够简练。3.word自带的审阅功能,能帮助自己进行笔迹版本管理。

2024-09-08 19:28:12 2047 4

原创 Keil下载烧录程序到单片机提示flash outtime超时

3.有外部看门狗,外部看门狗用跳帽屏蔽了再下载,要用跳线帽短接外部看门狗,不要用杜邦线,之前试过杜邦线有时候不行,阻挡不住外部看门狗复位,跳线帽可以。2.RESET按键按一下再下载(或者一直按着下载),这样能让单片机进入烧录模式。

2024-09-05 09:26:06 409

原创 C语言接口

现在手里有一个pcf8563的RTC模块,之前同事写的不完整,功能有问题。但是也不是全部代码都要推翻的。比如可以利用里面的iic等功能函数。网上找了个demo,但是里面的函数名和同事的函数名都不一样,但是有的函数功能 是一样的。这时候可以用接口把两者缝合起来。接口:说白就是结构体+函数指针。接口可以减少耦合,模块化。

2024-09-04 17:04:21 418

原创 Git+word记笔记

程序员记笔记主要同步很重要,我这个方法只支持个人笔记,如果团队还是用企业微信开个企业会员比较方便。为什么用word,因为可以镶嵌代码和文档,不仅仅是文字,兼容性强。语雀,云笔记这些对于上传的word都是有限制的,10MB左右。公司网上gitee太卡了,回家在写。去gitee建仓库。然后添加公钥,SSH。

2024-09-04 13:58:57 325

原创 关于keil程序无法进入main函数问题

上面这么多其实就是想全擦然后分别写入程序和bootloader进单片机flash。到此,bootloader和代码都烧写好了,把擦除全片改为擦除扇区(否则再次烧写会把bootloader冲掉)3.编译完烧写在单片机上,这一步相当于冲掉了bootloader,只下载了程序进入单片机的flash。1.把单片机的芯片上的数据全擦了(bootloader+代码数据)情况:之前烧写没问题,不然再次烧写的稍后显示boot损坏。不会烧写bootloader的看这个。断点都取消掉,编译下载进去。然后勾选下面这两个框。

2024-08-07 11:02:41 895

原创 liteos定时器回调时间过长造成死机问题解决思路

因为定时器的回调函数其实都是存在定时器回调队列里面的,如果一个回调过长,在实时性操作系统里会紊乱系统,加上屎山代码,就会死机。原代码是稳定的,现我实现EMQ平台断开连接的时候,把HSL的模拟点位数据采集到网关,然后存入Flash,当EMQ平台连接的时候,把Flash里面的点位数据放在消息队列里面,不影响实时采集。OK,不要动不动在回调函数写耗时操作,一两次可能没问题,但是一直进行回调的话,会造成奇怪的紊乱。最后的日志,然后就一直在进行度队列操作,队列ID是垃圾值。2.队列的id存的地方被覆盖了。

2024-07-25 19:46:27 426

原创 Jlink调试的时候提示擦除超时,programming failed @ address 0x0804000

Jlink,调试

2024-07-04 14:36:43 421

原创 插入删除单链表指定结点-偷天换日法

同理前插法也用了偷天换日法。就是插入在p前的话,我直接就插到p上面,后面再copy一个p即可了。王道说下面的代码有BUG,比如当删除的结点p在最后一个元素时,p->next=NULL;q->data就是错误的,我认为加个判断就行。

2024-06-11 22:51:30 296

原创 数据结构与算法题目集(中文) 6-4 链式表的按序号查找

简单,没啥讲的int i = 0;int a = 0;if(K<=0)while(K–)if(!L)a=L->Data;L=L->Next;return a;

2024-06-11 14:32:38 106

原创 数据结构与算法题目集(中文) 6-3 求链表的表长

该代码使用循环遍历链表来计算链表的长度。代码首先定义了一个整数变量。while(NULL)相当于while(0)来遍历链表中的每一个节点,并将计数变量。用于计数,并初始化为0。

2024-06-11 14:02:23 341

原创 数据结构与算法题目集(中文)6-2顺序表操作集

PTA数据结构与算法题目集(中文)函数题

2024-06-10 22:58:09 275 4

原创 串口接收第一个字节接收不到

我在第一个字节收到后加了一个字节的延时(用标志位控制)。注意不能加太久延时,否则空闲中断发生,挥着中断时间溢出后面的字节都收不到了。看了网上说的,我一次只发一个字节不会出现这种情况,发多个字节全速运行就会出现这样情况,于是我怀疑是全速运行的锅。全速运行第一个字节就没有了。但是把接受的数据再发出来,发现第一个字节到了最后一个字节。我发 5 1 2 3 他接受的是1 2 3 5。我是115200的波特率,加了8us。

2024-04-17 09:34:33 493

原创 IAR跳转到别的目录的源文件了

解决方法2:把那个 ignore standard include directories 勾选了。V4的程序点击变量的引用处,项目出现了V3的源文件,V4没有。解决方法1:使用绝对路径。

2023-12-22 11:47:36 579 1

原创 excel只显示想要的内容

后面的FG等列是不需要的,选择F列,ctrl + shift + 右箭头。

2023-07-01 11:43:52 849

原创 按键扫描思路详解

第一次执行时,如果按下了,返回按下的值,第二次执行key_UP为0了,如果你连续按着,只返回一次结果,第二次if(key_up&&(KEY0。当mode为1时支持连续按那么key_UP始终为1,static只执行一次。第二次执行的时候就忽略static这句话了,化简程序为。0)key_up=1;这里面因为连续按也不满足,所以第二次直接返回return 0.这是二合一的代码(mode为0不支持连续按,为1支持)当一直扫描时会不停的反馈结果。当mode=0不支持连续按。

2022-11-12 23:59:55 1045 1

原创 看门狗实验

比如我们设定 prer 值为 4,rlr 值为 625,那么就可以得到 Tout=64×625/40=1000ms,这样,看门狗的溢出时间就是 1s,只要你在一秒钟之内,有一次写入 0XAAAA 到 IWDG_KR,就不。这里需要提醒大家的是,看门狗的时钟不是准。确的 40Khz,所以在喂狗的时候,最好不要太晚了,否则,有可能发生看门狗复位。一直喂狗就不会复位了,但是如果程序跑飞,就喂不成狗,就会复位了。主函数,1s为溢出时间,不喂狗会闪烁,1s内喂不会闪烁。单位ms,prer预分频值,rlr重装载值。

2022-11-12 23:02:54 837

原创 串口配置代码

【代码】串口配置代码。USART_RX_STA讲解。一个16位的数diy成寄存器

2022-11-04 21:31:53 476

原创 正点原子简单实验

头文件里记得声明函数。ifndef是为了避免头文件重复声明。led.h里面声明一次就行了,不用在main.h或者和其它.h里面声明了。在rcc.h头文件有时钟开启函数,APB2Periph这个。为什么用APB2呢,因为它能映射PA5这个GPIO。中文参考手册里面看RCC APB2寄存器。然后做一个0.5秒的开和关灯操作就行了。位6和位3是gpioE,gpioB。

2022-10-01 10:11:15 470

转载 ifndef endif

假如你有一个C源文件,它包含了多个头文件,比如头文件A和头文件B,头文件B又包含了头文件A,则最终该源文件包含了两次头文件A。该段代码意思是:如果标识1没有被定义,则重定义标识1,即执行语句2、语句3;#endif之间的代码,当第二次包含test.h时前面一次已经定义了_TEST_H,条件为假,#ifndef _TEST_H和。当第一次包含test.h时,由于没有定义_TEST_H,条件为真,这样就会包含(执行)#ifndef _TEST_H和。程序段1//如果X没有被宏定义过,定义X,并编译程序段1;

2022-09-30 22:05:50 2568

转载 GPIO和IO

在实际的MCU中,I/O 是有多种形式的。比如,有的数据寄存器能够依照位寻址,有的却不能依照位寻址,这在编程时就要区分了。比如,传统的8051系列,就区分成可位寻址和不可位寻址两种寄存器。另外,为了使用的方便,非常多的 MCU 把 Glue Logic 等集成到芯片内部,增强了系统的稳定性能,比方GPIO接口除去两个标准寄存器必须具备外,还提供上拉寄存器,能够设置I/O的输出模式是高阻,还是带上拉的电平输出,或者不带上拉的电平输出。这在电路设计中,外围电路就能够简化不少。4、IO端口和IO内存。

2022-09-29 10:42:47 3389 1

原创 GPIO输入输出方式

(1)模拟I2C使用开漏输出_OUT_OD,接上拉电阻,能够正确输出0和1;开漏,就等于输出口接了个NPN三极管,并且只接了e,b. c极 是开路的,你可以接一个电阻到3.3V,也可以接一个电阻到5V,这样,在输出1的时候,就可以是5V电压,也可以是3.3V电压了.但是不接电阻上拉的时候,这个输出高就不能实现了.由于浮空输入一般多用于外部按键输入,结合图上的输入部分电路,我理解为浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。

2022-09-28 22:54:57 774

转载 ubuntu下安装qt,mysql

linux工具WinSCP,windows和linux传输文件。putty64,远程登录linux,命令行操作,类似SecureCRT。MobaXterm,全功能的终端软件。支持SSH连接,支持FTP、串口等协议,推荐使用。常用软件安装命令sudo apt-get update#若某个软件安装失败,尝试先更新一下sudo apt-get upgrade#升级#若软件安装提示无法解决的依赖,可以尝试用aptitude安装。

2022-09-16 18:06:07 1031

原创 向虚拟机里拖文件,VMtools安装问题

将刚才打开的文件中所有的http://cn.archive.ubuntu.com更换为刚才所选的网址(http://mirrors.aliyun.com/ubuntu/)。如果你的虚拟机能上网但不能访问http://cn.archive.ubuntu.com。https://wiki.ubuntu.org.cn/模板:Ubuntu_source。不能访问http://cn.archive.ubuntu.com。然后输入登陆密码,即可进入文件页面,进行网址更改。注:如果没有下载vim需要先进行下载。

2022-09-16 16:36:58 407

原创 ARM是什么,UART和USART

在电子通信领域,波特(Baud)即调制速率,指的是有效数据讯号调制载波的速率,即单位时间内载波调制状态变化的次数。单位“波特”本身就已经是代表每秒的调制数,以“波特每秒”(Baud per second)为单位是一种常见的错误,但是在一般中文口语化的沟通上还是常以“波特率”来描述“波特”(Baud)。USART是指单片机的一个端口模块,可以根据需要配置成同步模式(SPI,I2C),也可以将其配置为异步模式,后者就是UART。(摘自知乎-Sean回答)ARM是精简指令集的架构,华为,ST的芯片用这种架构。

2022-09-14 16:12:26 278

原创 linux系统编程技巧

vim 文件时查看open(例子)函数的man文档光标定在这个函数身上,2(表示在第2章,系统函数)+shift+k即可调到man文档里。man man 在终端可以看见有9个章节。第2章节是系统函数,里面就有open函数。...

2021-12-23 17:33:00 747

转载 Linux上运行c文件

Linux下编译运行C程序1.执行 vim demo.c 编写C语言文件复制代码#include<stdio.h>int add(int,int);int add(int num1,int num2){return num1+num2;}void main(){int res=0;res = add(2,3);printf("%d\n",res);printf(“哈哈\n”);}复制代码2.编写完后:wq保存退出,输入 gcc -o demo demo.c

2021-12-23 10:30:03 6361

原创 ubuntu开机黑屏与安装ubuntu后出现的小问题

删除打印机加速3D图形不勾选,拉伸模式不勾选(为后续的屏幕大小设置做铺垫)。这样重启就可以进去了。屏幕太小了,安装vmware tools,网上有教程。pl是脚本那文件perl是解释脚本文件命令。sudo perl vmware-install.pl值得说一点的是,可以直接在这个目录下,打开终端,从而省去了命令行里不断cd的麻烦。安装完成后是successful这样的提示。重启虚拟机,调整分辨率屏幕就大了。ubuntu和其他centos不一样一、Ubuntu的默认root密

2021-12-19 20:16:55 664

转载 S,SC,Course表

–Edit by HBU_David @ HeBei University 2020.3.6DROP TABLE IF EXISTS SCDROP TABLE IF EXISTS StudentDROP TABLE IF EXISTS CourseCREATE TABLE Student( Sno CHAR(9) PRIMARY KEY, /* 列级完整性约束条件,Sno是主码*/Sname CHAR(20) UNIQUE, /* Sname取唯一值*/Sse

2021-11-09 21:57:13 448

原创 SQL固定长度字符和可变长度字符

1) 定义:char: 固定长度,存储ANSI字符,不足的补英文半角空格。nchar: 固定长度,存储Unicode字符,不足的补英文半角空格varchar: 可变长度,存储ANSI字符,根据数据长度自动变化。nvarchar: 可变长度,存储Unicode字符,根据数据长度自动变化。nvarchar(n) :包含 n个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零

2021-10-31 15:47:28 7005

原创 SQL server分离数据库和加入数据库

可以从一台电脑上移动到另一台电脑上,在实验室的时候把实验室的数据库移动到自己电脑上,以便后续操作。首先分离数据库有点点击test属性这个路径记住,等会分离的mdf,ldf文件就在这里面。右键点击test 任务 分离这两个勾选上,点击确定在路径上可以找到这两个文件把这两个文件保存到另一台电脑,右键点击数据库,附加添加你的文件确定OK了...

2021-10-31 15:41:34 1538 1

原创 word多级列表和永久添加标题样式

永久增加标题每次写word实验报告实训报告,排版烦死人,其实老师也不咋看内容,本科生能有啥本事对吧,排版好分就高。点击模板,点击转到点击管理器可以你想要的样式添加到公用模板里,公用模板的样式不会消失。复制就是添加的意思。点击关闭文件这样文件就关闭了两边都关闭,然后互换位置打开就可以吧公共模板的样式添加到任意文档里面了。虽然也麻烦但比一次次定义样式方便点。。友友们有好办法可以给我说说,我只会这种。定义多级标题这是我定义的多级标题。11.11.1.1这样子步骤如下:

2021-10-27 20:35:39 1415

转载 java的静态方法

Java中方法分为静态方法和普通方法所谓静态方法,就是方法前面加上static关键字,调用静态方法时一般用类名.方法名,当然也可以用对象名.方法名;一般Java中工具类里面的工具方法都用static修饰,作为静态方法;比如:String类里面的将字符串类型变成整形的方法:int b=Integer.parseInt(s),可以将字符串类型的s变成整型b;注意:非静态方法既可以访问静态数据成员又可以访问非静态数据成员,而静态方法只能访问静态数据成员;非静态方法既可以访问静态数据方法又可以访问.

2021-06-18 11:37:12 13438

原创 1002写出这个数C语言

//前面是我的思路,可以直接跳到后面/下面这个是自己摸索着写的,由于puts函数,没能按题目要求给出空格,因为直接换行了…#include <stdio.h>#include <stdlib.h>#include <string.h>//10的100次方,有101位,小于他,那么最大数就是100个9,sum最大999int main(){ int i,sum=0; char pinyin[10][4]={"ling","yi","er",".

2021-06-18 10:14:00 627

原创 PAT乙级3n+1猜想1001

#include <stdio.h>#include <stdlib.h>int main(){ int shuru,counts; counts=0; scanf("%d",&shuru);while(shuru!=1){ if(shuru%2==0) { shuru=shuru/2; counts++;} else if(shuru%2==1) //!这里连用if导致运行超时,以后只能if..else

2021-06-14 12:39:22 80

原创 剪辑菜鸟迪迦

迪迦示爱,剪辑:1、在爱剪辑上找剪同款,用硕鼠下载b站视频,格式工厂转换格式,转场过度,音效过度.

2020-12-25 21:44:24 117

空空如也

空空如也

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

TA关注的人

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