自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Windows环境中,Dify本地部署

简介:本文档介绍的是使用docker部署Dify。

2025-03-19 11:27:38 498

原创 LLaMA-Factory部署以及微调大模型

安装成功后,输入python能出现截图表示安装成功。

2025-03-05 13:44:30 1978 1

原创 算法练习-删除排序数组中的重复项

返回删除后数组的新长度。删除重复出现的元素,使每个元素。

2024-08-13 15:32:02 236 1

原创 算法练习-移除元素

元素的顺序可能发生改变。

2024-08-13 14:15:32 181

原创 算法练习-合并两个数组

注意,因为 m = 0 ,所以 nums1 中没有元素。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。,5,6] ,其中斜体加粗标注的为 nums1 中的元素。最终,合并后数组不应由函数返回,而是存储在数组。需要合并 [1,2,3] 和 [2,5,6]。需要合并的数组是 [] 和 [1]。个元素表示应合并的元素,后。需要合并 [1] 和 []。中,使合并后的数组同样按。合并结果是 [1]。合并结果是 [1]。

2024-08-13 10:50:47 169

原创 基于Hyper-V的虚拟机搭建TFTP开发环境

背景:正点原子的IMX6ULL开发板的驱动开发,自己开发的驱动只能通过网络环境推送到开发板上。教程中的虚拟机是使用VMware搭建的虚拟机,但是由于版权原因不是任何地方都能使用WMware来搭建虚拟机。我使用的Windows操作系统的Hyper-V来搭建的虚拟机。其中Address值要与开发板上的值一致,比如这里169.254.201是不能变的最后一组100是自己随便改的。配置IP地址,前三组值保持与开发板一致,最后一组值不能与Ubuntu和开发板冲突,其余随便配。我根据我的开发板硬件选择的固件。

2024-05-30 15:51:22 353

原创 正点原子I.MX6U编译01_chrdevbase报错

尝试编译第一个驱动程序,程序代码来自资料包里面,根据自己的环境和教程修改了改修改的地方,但是编译依然报错不能通过。错误原因是正点原子提供的linux-kernel包里的Makefile文件的ARCH和CROSS_COMPILE的配置有错误。改Makefile文件的路径是linux内核的根路径下的。

2024-05-28 11:35:40 262

原创 Remote-SSH XHR failed 问题解决

2.在浏览器地址栏中输入:https://update.code.visualstudio.com/commit:XXX(Your commit id)/server-linux-x64/stable。上述地址中的XXX(Your commit id)自行根据自己的commit id进行替换。1.确定本机上报的连接的commit id,在vscode的输出窗口中查看日志找到commitId。3.下载完成后,把压缩包上传到Ubuntu电脑中。

2024-05-24 15:06:07 285

原创 Hyper-V运行Ubuntu全屏

【代码】Hyper-V运行Ubuntu全屏。

2024-05-06 14:09:41 612 1

原创 用C语言实现面向对象的多态

【代码】用C语言实现面向对象的多态。

2024-04-24 10:55:43 228

原创 记录回调函数示例

记录下写的一个回调函数的示例。

2024-01-04 17:41:33 423 1

原创 STM32单片机基于CubeMX移植FreeRTOS

但是在学习阶段时候,找到的讲解freeRTOS的书籍都是基于freeRTOS官网的代码。我们从FreeRTOS->Demo->CORTEX_STM32F103_Keil中复制FreeRTOSConfig.h文件,到项目工程文件的port文件夹中。portable->RVDS->ARM_CM3文件夹中的文件要复制到工程文件的port文件夹中。新建freeRTOS/src,freeRTOS/inc,freeRTOS/port,三个分组。组freeRTOS/inc,导入inc文件夹中的文件。

2023-12-27 17:09:02 1686 1

原创 static的用法

修饰局部变量和修饰全局变量的静态变量都是放在内存的静态区中,而这种改变带来的影响就是使得局部变量的生命周期变得和整个程序一样长,即:局部变量出了其作用域也将不会销毁,除非程序结束。值得注意的是虽然局部变量的声明周期得到了很大的提升,但他的作用域没有发生任何的改变,还是只能在那个局部的范围内使用。​当函数第一被调用,函数中的静态局部变量被初始化,再次调用这个函数,这个 static 变量也不会再次被初始化,仍是保存的前一次函数调用时的结果。被static修饰的函数只能在本文件中使用。Method.h文件。

2023-11-29 14:23:13 436 1

原创 freertos添加互斥量mute

开发工程中使用freertos会遇到多个任务抢资源的情况,添加互斥量来避免出错。

2023-11-09 14:54:54 320 1

原创 Window环境下的I2C测试工具

在项目开发初期会遇到i2c读写不通的问题,这个时候,可能的问题比较多,有可能芯片供电没配置正确导致i2c总线上没有该设备,有可能自己调用的mcu的i2c读写函数错误,有可能自己的i2c芯片地址有问题。有的mcu厂家的i2c读写函数里面的芯片地址用的设备地址,有的有的是读地址,有的读写函数分别传入的是读、写地址。以前开发时候用的是linux的i2c-tool首先来排查问题,但是每次都要去接树莓派的开发板,而且还有给树莓派的开发板找显示器、键盘、鼠标感觉太麻烦了。我用的是esp32-c3开发板。

2023-11-08 10:13:34 6101 3

原创 STM32单片机printf函数串口打印

串口打印经常在调试中使用,目前网上大量能搜到的都是说往uart.c文件中添加串口重定向。但是目前工程中是基于freeRTOS和STM32的HAL库开发的,和网上很多资料环境不是很一致。总结自己开发的经验。在main函数中的这个地方添加代码。

2023-10-24 14:06:53 221

原创 C语言钟的__FILE__、__LINE__、__DATE__、__TIME__、__func__

单片机开发中用于版本号的编辑。

2023-10-24 13:57:06 106

原创 STM32F1的PB3口不能输出高低电平的情况

如果真的要用到其中的某一些管脚,那就要先把他们从复用功能中解放出来,解决办法就是开启重映射复用时钟,根据上图的手册提示,将控制调试端口的寄存器AFIO->MAPR配置成四种模式中的一种,就能对应解放红色框框中的IO口。A13、PA14、PA15、PB3、PB4这五个IO口从一开始就被默认了复用功能,被用在了JYAG调试功能上了,所以才没法使用通用功能来输出高低电平。排除板子损坏的情况,出现这种情况是属于正常的,因为该IO口很有可能被复用了,所以用不了通用模式。对比修改前后的文件,可以看到代码里修改的地方。

2023-10-24 10:17:45 1442

原创 STM32 i2c读写寄存器地址8位,16位的方法

一般常用的寄存器地址是8位的,遇到一个寄存器地址为16为的器件。寄存器地址16位的为SY103,寄存器地址为8位的为LT7911.可以看到把值写入到相对应的寄存器内,并且读出。lt7911该位置寄存器参考手册。sy103该位置寄存器参考手册。

2023-10-18 09:30:55 2913 1

原创 keil仿真 Encountered an improper argument

项目文件夹的路劲中包含中文。

2023-10-16 16:06:15 117 1

原创 Keil更换背景

习惯了vscode的背景配色,使用keil开发时候,浅色背景看起来眼镜不舒服。修改原来背景配色方案。该路径下,替换global.prop。

2023-10-11 10:23:10 254

原创 安装Keil出现 TOOLS.INI - Section [C51]‘: missing ‘PATH‘ entry !故障

以前一直使用的是破解版本的keil,后面让使用正版Keil。电脑上曾经安装过Arm和C51版本的Keil。在删除掉电脑上以前安装好的的keil,安装有授权码对应版本的keil。运行keil时候出现上述问题。

2023-10-11 10:14:41 3991 5

原创 C语言结构体边界对齐

4. 如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。3. 结构体总大小为最大对齐数(每个成员变量都有一个对齐数)的整数倍。1. 结构体的第一个成员永远放在结构体起始位置偏移为0的地址。2. 结构体从第二个成员,总是放在一个对齐数的整数倍数。对齐数 = Min(编译器默认的对齐数:变量自身大小)编译器默认的对齐数和变量自身大小的较小值。

2023-10-10 17:25:40 199 1

原创 函数指针的用法

运行结果: 运行结果:运行结果:运行结果:

2023-10-10 11:24:03 46 1

原创 数组名不等于数组第一个元素地址的情况

按照数组名和数组第一个元素的地址划等价,那么num1的值和num2值都是地址值,那么sizeof运算得出的值应该是一致的。但是num1的值是整个数组所在的字节值,num2是一个整型指针所占的值。&arr 代表的是整个数组的地址。尽管和数组首元素的地址是一样的(如下),但是代表的意义是完全不一样的。下面我们让这两个地址都向后移动一个单位,这样的话就可以看出两者的区别了。通常数组名可以和数组第一个元素的地址划等价。但是以下情况却不是。

2023-10-10 10:46:54 79 1

原创 memset赋值

memset赋值是按照字节进行赋值的,所以通常用于赋值0,进行初始化操作。

2023-10-10 09:56:00 246 2

原创 数组指针和指针数组

其次,对于语句“int(*p2)[5]”,“()”的优先级比“[]”高,“*”号和 p2 构成一个指针的定义,指针变量名为 p2,而 int 修饰的是数组的内容,即数组的每个元素。首先,对于语句“int*p1[5]”,因为“[]”的优先级要比“*”要高,所以 p1 先与“[]”结合,构成一个数组的定义,数组名为 p1,而“int*”修饰的是数组的内容,即数组的每个元素。*p[n]:根据优先级,先看[],则p是一个数组,再结合*,这个数组的元素是指针类型,共n个元素,这是“指针的数组”,即指针数组。

2023-10-08 15:11:21 46 1

原创 常量指针和指针常量

常量指针表示指针对应的值(这里是是a的值,即*p是常量,不是p对应的地址值是常量)是一个常量不能够被修改。最开始以为常量指针p对应的地址是不能修改的。但是通过实验,可知常量指针p指向的地址值是可以修改的。从运行结果可以看到常量指针是可以修改指针对应的地址值的。普通指针可以通过指针来修改变量值,示例代码如下。指针常量,是不允许修改指针对应的地址值。常量指针防止通过指针修改变量值。可以看到通过*p修改了a的值。

2023-09-26 16:20:02 63 1

Keil更换背景配置文件

Keil更换背景配置文件

2023-10-11

空空如也

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

TA关注的人

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