自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 stm32 2.0.4.0

因为选择了tim3的启动方式所以这里就没有软件启动的功能了。

2025-03-21 17:15:56 229

原创 stm32 2.0.3.1

开了眼了还能自己产生pwm波自己测。串口能直接这么发送文字。

2025-03-21 10:51:22 304

原创 stm32 2.0.3.0

为什么需要使用pwm2模式这是以为如果有两个mos管的话,他们不能同时导通,就会需要这样的结构。值先进入影子寄存器,之后才会更新到活动寄存器。这里选择打开不然就没法更新CCR的值了。保险起见选择打开ENABLE。

2025-03-20 21:59:32 248

原创 stm32 2.0.2

在串口读取数据是有两级缓冲,理想情况是每接受到一个数据就把他读出来,但是没来得及读就会造成数据丢失。要对串口进行一个判断,这是一个约定俗称的写法。在右下角的Watch里面写上要监视的变量。这能直接改对应的值,效果会显示在单片机上。这两个地方的设置是一样的。右键点击转换为十进制数。SPI总线的五个参数。解决不定长数据的方法。

2025-03-20 18:22:31 235

原创 stm32 2.0.1

Data Direction 数据传输方向:Transmit-Only 只发送 | Receive-Only 只接受 | Receive and Transmit收发双向(一般选择收发双向)将地址换算成二进制数据之后去掉最后一位,之后主机释放SDA线等待从机应答,从机通过把SDA拉低来释放一个应答信号(ACK)发送端高电位说明串口是空闲状态,当变为低电位的时候开始发送数据,在最后停止位会把电压拉高,一般采用1位的停止位。当数据位中包含奇数个1的时候校验位就写的是1,偶数个就写0。

2025-03-20 15:37:08 525

原创 stm32 2.0.0

接入上拉电阻之后,就不会读取外部的信号,因为下面的这个电阻相当于无穷大,分到了全部的电压,所以图中的点的电压就是Vdd,I/O引脚上会出现一个稳定的高电压。过快的上升沿和下降沿会增加芯片的功耗,同时会使数字信号的带宽增加,从而对电路上其他的电子元器件产生电子干扰。彩色的引脚是由特殊功能的引脚,用户无法通过编程去控制,灰色的是普通的I/O口。进行一个程序的下载,下载完之后就相当于是之前的程序已经被清空了。NRST是芯片的复位接口,接一个按钮来进行芯片的复位。电压的切换并不是直接就能切换的,需要切换时间。

2025-03-18 19:49:23 483

原创 正式进入linux 1.0

bin 二进制目录 GNU的一些工具,使用的一些命令都在bin里面,相当于直接程序就写好了,直接用就行(包括系统的一些自带的命令),存放许多用户级的,是一些系统级的命令。/root 相当于管理员目录,一般不要去搞他,需要管理员身份去访问,就像是windows中的以管理员身份运行,他的权限是修改电脑的所有文件 前缀是sudo。后面还有/usr/bin这是你自己写的命令,比如自己安装的软件,所以寻找你安装的软件的时候就要去/usr/bin里面去找,而不是/bin里面去找。/srv 服务目录。

2025-03-14 22:30:37 694 1

原创 Linux 铺垫

unix上具有的一些软件,linux内核内有,所有GNU他们模仿unix, 为linux写了一些必要的软件。在linux有两种方法,一种是通过GUI(图标界面),一种是通过GUN(命令行)1.命令行界面(CLI)-------->专业的人玩什么?其中的type就是各种各样的文件类型,不同的分区有不同的格式。GNU是一个自由的操作系统,开发各种的软件,画图啊什么的。IT术语并不遵循通常的英语音标,更多的是遵顼专业的术语。GNU ---->是一个组织,专门写软件。4.Application 应用 App。

2025-03-12 14:36:30 343

原创 java 下

Animal作为抽象类(相当于一个共性的集合),平时使用的几乎都是他的继承,不会去专门创建一个Animal类,同时在继承的时候,有可能会忘了重写某一方法,导致直接沿用了Animal中的方法。当一个类里面,所有的方法都是抽象方法是,我们就不用abstract class的方法了,而是使用接口。问题是不同的动物,叫声不同,所以此时Animal中的动物叫就无法完成任务,所以需要方法的重写。相当于是用new了一个子类,但是顶着父类的名字,所以会向上转型,用父类的东西。在需要重写的类中使用ali + insert。

2025-03-04 09:23:10 333

原创 二级指针解引错误

这里传入的是char*一级指针,但是在后续强制类型转换的时候是对二级指针解引,因为我们传入的是一级指针,并没有告诉二级指针的位置,所以强制转化为二级指针然后再解引会指向一片未知的内存空间。正确的写法时强制转化成一级指针。

2025-02-13 20:14:20 126

原创 Java 上

包是就是一个文件,com是域名 company是公司名 后面跟着就是包的用途。也可以直接执行java文件,这时不会生成class文件,而是放到了内存里。Java生成的是class文件(字节码文件)可以跨平台使用。在终端中使用javac是进行编译这时会产生class文件。将自己的java文件分享给别人时分享的是class。在使用java xxx(文件名), 这时是运行程序。**/****输入这个,然后电机回车会自动生成注释。程序的命名和文件的命名时一样的。是运行在一个小的虚拟机上。

2025-02-11 21:52:51 610

原创 事件注册驱动器

来源于micro_frank。

2025-02-11 10:56:30 104

原创 仓库管理小程序

在这个示例中,name 字符串 “ThisIsALongName” 的长度超过了 MAX_NAME(10),由于使用了 _TRUNCATE 模式,strncpy_s 会将其截断,只复制前 9 个字符(因为要预留一个位置给 ‘\0’),最终 inventory[0].name 中存储的是 “ThisIsALo”。来源于micro_frank。

2025-02-10 17:40:55 182

原创 数组作为参数的一些使用

来源于micro_frank。

2025-02-09 20:33:03 199

原创 指针数组和数组指针

指针数组是一个数组,数组中的每个元素都是指针。也就是说,它是一组存储指针的集合。数组指针是一个指针,它指向一个数组。也就是说,它存储的是整个数组的地址。指针数组:是一个数组,数组元素是指针,主要用于存储多个指针。数组指针:是一个指针,指向一个数组,常用于处理二维数组等情况。

2025-02-09 16:01:39 209

原创 命令行参数

调用power shell中运行的东西是一个软件,后面的-f -0等等都是参数生成.exe文件生成 -> 重新生成解决方案生成 -> 重新编译需要写start xxxx.exe得用win + R打开cmd才能实现,还需要把exe文件放到对应的用户 -> 用户名文件夹第一个参数是文件位置后面的参数是输入的参数,不需要-xxx,用空格隔开就行atoi是 C 标准库中的一个函数,用于将字符串转换为整数。

2025-02-08 13:23:01 306

原创 VMware Workstation虚拟机

快照:可以回到之前的状态,对某个事件段的状态进行一个保存。没必要关机,选择挂起就行(不占内存),就像视频播放一样。3.和真实的计算机毫不相干,随意性。ctrl + alt移出虚拟机光标。4.便携性:放到电脑的文件里头了。本电脑的东西可以直接扔进虚拟机里。下载连接vmware.com。可以测试木马,病毒,楼顶。

2025-02-08 11:47:28 95

原创 可变参数 2.0

/ 自定义日志函数// 包含了日志级别,格式化字符串,自动添加时间戳LOG_INFO,LOG_ERROR,// 这里的格式化用到了 vprintf// 可以接收各种各样的数据报告return 0;break;break;break;// 格式化并输出可变参数。

2025-02-07 10:56:29 646

原创 C语言访问环境变量

getenv_s函数用于获取指定环境变量的值。它是getenv函数的安全版本,通过额外的参数检查避免了缓冲区溢出的风险。_putenv_s是 C 语言中用于安全地设置或删除环境变量的函数,它是putenv函数的安全版本。putenv函数可能会因为传入不恰当的参数而导致程序出现未定义行为,_putenv_s通过更严格的参数检查和错误处理机制来避免这些问题。

2025-02-07 10:47:46 844

原创 封装函数时传入参数的选择

一般情况下,建议使用传入一级指针的方式封装malloc,因为它更简单直观,符合函数设计原则。只有在确实需要在函数内部修改调用者的指针变量时,才考虑使用传入二级指针的方式。//C11#else//C11不可用#endif//在实际应用中,可能不希望在分配失败时候停止程序//所以,这里使用断言为了调试方便,让大家能看到问题//实际在企业中应该根据需求进行错误处理assert(ptr!= NULL);return ptr;if (!

2025-02-07 10:22:51 234

原创 C 语言字符串处理函数详解 2.0

基本操作示例通过strcpy_sstrcat_ssprintf_s等函数的示例,展示了字符串的复制、连接和格式化输出操作。示例代码如下:// 使用strcpy_s进行字符串复制printf("复制成功: %s\n", dest);} else {printf("复制失败,错误码: %d\n", err);// 使用strcat_s连接字符串printf("连接后的字符串: %s\n", dest2);} else {printf("错误: 无法连接字符串\n");

2025-02-06 11:43:06 709

原创 文件的输出与读写 2.0

文件操作函数概述:介绍了 C 语言中用于文件操作的一系列函数,这些函数是实现文件读写功能的基础工具。文件流概念定义与分类这种定义方式包含了各种各样的流。流是一种用于在程序和外部设备(如文件、控制台、网络等)之间进行数据传输的抽象概念。具体类型文件流:用于读取与写入在磁盘上的文件。例如,通过文件流可以从硬盘上的文本文件中读取数据,并将其显示在程序中,或者将程序中的数据写入到文件中,以便后续使用或共享。标准 I/O 流stdin:默认连接到键盘,用于程序输入,通常与scanf_s。

2025-02-06 11:06:50 901

原创 文件的输出和读写 1.0

fgets该函数从指定的文件流stream中读取最多num - 1个字符,并将其存储到字符数组str中,直到遇到换行符\n或者文件结束符EOF为止。读取完成后,会在字符串末尾自动添加字符串结束符'\0'。

2025-02-05 22:30:39 865

原创 字符串常用函数 1.0

匹配指定字符的位置。

2025-01-31 18:28:33 816

原创 值语句初始化结构体

【代码】值语句初始化结构体。

2025-01-31 16:48:45 98

原创 函数指针 1.0

这段代码尝试调用一个存储在数组中的函数。state1作为索引,用于从数组中选取特定的函数,然后调用该函数。不过代码里的(void)写法有误,在 C 和 C++ 中,正确调用无参数函数时,括号内不需要写void,直接用空括号()即可。正确写法。

2025-01-31 14:36:45 131

原创 python环境的配置

下载失败,有些包是找到一个压缩文件然后去编译,这时需要编译环境和依赖,这就需要去下载环境,当然更多时候在一个大的版本号之下试一试不同的后缀版本。有时候会出现下载直接失败,这是因为pip用的是国外的网址,连接不稳定,需要的时间长,他会因为时间长直接切换源,所以命令他一直等待。不同的项目需要用到不同的环境和不同的包,使用创建新的python环境,同时需要激活。还报错的话就把写的python文件扔到一个文件里,这就算是弄了一个工程文件。出现红字的话,红字里面就是可以下载的版本,然后选择即可。

2025-01-28 21:25:21 140

原创 断言assert

作用相当于stederr,告诉你错误的位置。

2025-01-28 10:17:54 178

原创 可变参数 1.0

需要引入stdarg.h头文件va_liststdarg.hva_listargsargsva_listnum_argsva_startnum_argsva_argargsva_listintva_argsumva_copydestva_listsrcva_list。

2025-01-28 00:57:26 206

原创 悬挂指针 1.0

如果有free的动作出现,一定要将ptr设置为NULL,避免悬挂指针。所以free这一步一定是在最后,不然就会出现悬挂指针的问题。来自于micro_frank。

2025-01-27 21:52:55 63

原创 泛型编程:比较与排序

来源于micro_frankqsort函数介绍qsort是 C 标准库<stdlib.h>中提供的一个通用的快速排序函数,它可以对任意类型的数组进行排序。

2025-01-27 20:56:58 131

原创 自定义函数处理比较器

来源于micro_frank。

2025-01-27 19:57:37 66

原创 头文件 1.0

在visual stdio2022中可以把ifndef和endif改成pragma once效果是一样的。头文件之前要写注释,说明这个头文件是用来干什么的。头文件用来声明,源文件用来实现。),用于防止头文件被重复编译。构成了头文件保护符(

2025-01-27 17:18:32 101

原创 回调函数在游戏中的使用

【代码】回调函数在游戏中的使用。

2025-01-27 15:30:02 273

原创 回调函数的妙用

6. 多线程或并发编程中的线程启动函数。10. 资源管理器中的资源释放策略回调。7. 用户界面组件中的自定义渲染策略。9. 状态机实现中的状态转换触发器。5. 排序算法中的自定义比较函数。8. 网络请求处理中的协议解析器。4. 插件架构中的扩展点定义。

2025-01-27 15:29:12 67

原创 回调函数与函数指针

这种方式是指针变量名,可以做函数指针类型,也可以作变量使用。先将一段typedef,为基本数据类型创建别名。这里是定义了一个函数指针类型,

2025-01-27 10:58:27 117

原创 时间戳 time.h

【代码】时间戳 time.h。

2025-01-26 16:36:43 110

原创 math.h 1.0

【代码】三角函数 1.0。

2025-01-26 11:26:11 93

原创 游戏设计 1.0

使用了枚举并且加入具体的命名。来源于micro_frank。结构体里面嵌套结构体。

2025-01-26 10:50:48 208

原创 二级指针和分配空间

来源于micro_frank。

2025-01-26 10:36:02 88

空空如也

空空如也

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

TA关注的人

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