- 博客(45)
- 收藏
- 关注
原创 【deepseek-r1】ollama如何更改安装位置以及自定义模型下载位置
ollama默认装位置在:C:\Users\XX\AppData\Local\Programs\Ollama模型下载位置:C:\Users\XX.ollama我们可以在F盘创建Ollama文件夹,创建models子文件夹存放模型,再将上述两个文件夹移动到该文件夹下
2025-01-31 19:05:12
49639
15
原创 【LVGL】出错error: #8: missing closing quote,中文显示
使用Notepad++打开相应的.c文件,转换编码格式为UTF-8-BOM。使用GUl Guider生成的代码在keil出错,中文显示问题。
2024-12-27 15:51:01
225
原创 【stm32F429】出错 Invalid ROM Table
Invalid ROM Table Error: Error: Flash Download failed - Target DLL has been cancelled首先确认你的电路板的MCU芯片的BOOT0脚是否直接接地,若是比较麻烦,需要将该引脚抬高(脱离GND)后再拉高,容易断脚请注意;若非直接接地,将BOOT0拉高(置1
2024-12-21 15:40:24
377
原创 【STM32】输入捕获
【STM32】输入捕获,当检测到外部信号从低电压变高电压时,CNT会拍照保存到CCR寄存器中,然后读取CCR寄存器,于是得出外部信号变化的时间。由于通道之间可以相互引用(每两个为一组),所以将脉冲信号输入一个通道
2024-10-26 16:38:05
493
原创 【FreeRTOS】
../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/freertos_os2.h(31):使用STM32cubemx自动生成freertos选项V2报错,V1不报错。修改cubemx配置,将V1.8.6改选为V1.8.5后编译不再报错。
2024-10-19 12:06:57
387
1
原创 使用yolov8识别+深度相机+机械臂实现垃圾分拣机械臂(代码分享)
使用yolov8识别+深度相机+机械臂实现垃圾分拣机械臂(代码分享)本作品将视觉识别技术部署在嵌入式设备,自动控制机械臂进行分拣任务,在我们的设计中,首先使用深度相机将图像信息发送到嵌入式设备,视觉识别算法进行分类检测,将垃圾分为感染性,损失性,病理性,药物性,化学性,并根据相机的深度值计算出目标的三维坐标,由于系统使用眼在手外的结构,根据手眼标定的结果,将坐标转换为机械臂坐标系下的运功坐标,然后机械臂执行分拣任务。
2024-09-10 19:56:55
1985
2
原创 使用yolov8识别+深度相机+机械臂实现垃圾分拣机械臂(代码分享)
智能垃圾分拣机械臂使用YoloV8做的目标检测,机械臂手眼标定使用Aruco的方式,通过深度相机获取三维坐标,与机械臂坐标系之间的转化,得到抓取的坐标 - 深度相机是dabaipro - 机械臂自己打印
2024-09-09 15:40:25
4054
13
原创 【linux】/.bashrc文件
当你在Linux或类Unix系统中使用vi /.bashrc命令时,你实际上是在用Vi编辑器打开/.bashrc这个文件。~/.bashrc是一个隐藏文件(以点.开头),位于你的用户主目录中。 每次登录时运行:对于交互式Shell,.bashrc中的命令会在每次登录时被执行。如果你使用的是图形界面登录,那么通常它会在你打开新的终端窗口或标签页时加载。
2024-08-02 22:08:04
917
原创 【全志H616开发】使用sqlite3_exec函数操作SQLite数据库
回调函数 callback 在 SQLite 中用于处理 sqlite3_exec 执行 SQL 查询后返回的结果集。每当查询返回一行数据时,SQLite 都会调用一次这个回调函数。通过回调函数sqlite3_exec 是 SQLite 数据库库中的一个函数,用于执行一条或多条 SQL 语句。
2024-07-31 22:00:48
838
原创 【全志H616开发】SQLite打开/创建数据库的C接口
sqlite3_errmsg函数用于获取最近一次 SQLite 数据库操作的错误消息。这个函数的原型是:```cconst char *sqlite3_errmsg(sqlite3*);```**参数** - sqlite3 *: 这是一个指向数据库连接对象的指针。这个指针是通过 sqlite3_open 或相关函数获得的。sqlite3_close 是 SQLite 数据库库中的一个函数sqlite3_open** 是 SQLite 数据库库中的一个函数,用于打开一个新的数据库连接。如果指
2024-07-31 19:49:02
1156
原创 【全志H616开发】SQLite数据库安装和SQLite的命令用法
SQLite简介安装方法一方法二SQLite的命令用法创建数据库创建一张表格往表里面插入一条记录删除一条记录更改一条记录删除一张表增加一列指令安装(但没有sqlite3)``sudo apt-get -y install sqlite``- sqlite3 进入数据库 - .open test.db - .quit 数据库退出后在命令当前路径可以ls查看创建数据库的test.db
2024-07-31 18:04:35
425
原创 【全志H616开发】Linux守护进程
ps**:Process Status 的缩写,是一个用来报告当前系统中进程的状态的命令一个守护进程的**父进程是init进程**,因为它真正的父进程在fork出子进程后就先于子进程exit退出了,所以**它是一个由init继承的孤儿进程**守护进程开发直接借助damon()函数完成
2024-07-30 16:01:43
1093
原创 【全志H616开发】Linux的热拔插UDEV机制
Udev 守护进程(udevd)会监听这些 uevent 事件。Udev 配置文件和规则List of devices attachedFMLDU20103009685 no permissions (user in plugdev group; are your udev rules wrong?); see [http://developer.android.com/tools/device.html] 解决:创建规则文件,见示例
2024-07-30 14:54:45
991
原创 【Linux】I2C协议显示oled屏幕
输入 sudo ./a.out /dev/i2c-3。错误:Usage:./a.out I2C bus device node
2024-07-29 17:09:27
292
原创 【linux系统编程】定时器
通过`itimerval`结构体以及函数`setitimer`产生的信号,系统随之使用`signal信号`处理函数来处理产生的定时信号。从而实现定时器
2024-07-29 16:05:53
555
原创 【Linux系统编程】之Vim使用小技巧---代码自动对齐,智能提示,代码显示出行号
【Linux系统编程】之Vim使用小技巧---代码自动对齐,智能提示,代码显示出行号
2024-07-29 14:00:35
661
原创 【Linux系统编程】多线程与自身相关api
pthread_detach是一个函数,用于将一个线程设置为分离状态(detached state)其涉及的多线程开发的最基本概念主要包含三点:线程,互斥锁,条件。其中,线程操作又分线程的创建,退出,等待 3 种。互斥锁则包括 4 种操作,分别是创建,销毁,加锁和解锁。条件操作有 5 种操作:创建,销毁,触发,广播和等待。其他的一些线程扩展概念,如信号灯等,都可以通过上面的三个基本元素的基本操作封装出来。详细请见下
2024-07-27 23:56:58
626
原创 【Django】错误ImportError: cannot import name ‘ChineseAnalyzer‘ from ‘jieba.analyse‘
【Django】错误ImportError: cannot import name 'ChineseAnalyzer' from 'jieba.analyse'这里给大家提供一种解决问题的思路:在python开发中,遇到类似的问题,要好好检查下关联库的问题,虽然大多数这样的都会有module未安装的提示,但是不排除没有提示到具体点儿的时候!分析: 已经安装了 jieba ,但出现以下错误。经排查是因为whoosh这个库没有安装,
2024-07-27 16:27:55
261
原创 【Linux系统编程之进程】创建进程,父进程等待子进程退出,fork,vfork,exec族函数等
什么是程序,什么是进程,进程标识符,什么叫父进程,什么叫子进程?,fork函数创建,vfork创建,父进程等待子进程退出,什么是僵尸进程,wait函数,waitpid函数,孤儿进程,exec族函数,system函数,oppen函数,使用 ps 命令,如 ps -aux 查看所有进程的详细信息。 - 使用 top 或 htop 命令实时监控系统的进程。 - 使用 pstree 命令以树形结构显示进程。
2024-07-25 23:50:07
1114
原创 【Linux】C程序的储存空间是如何分配(栈,堆,代码段,BSS段,数据段)
C程序的储存空间是如何分配(栈,堆,代码段,BSS段,数据段)text段:代码段,就是放程序代码的,编译时确定,在内存中被映射为只读,但date段与bss段是可写的 - date段:存放在编译阶段(而非运行时)就能确定的数据,可读可写。也就是通常所说的静态存储区,**赋了初值的全局变量和赋初值的静态变量**存放在这个区域,常量也存在这个区域 - bss段:已经定义但**没赋初值的全局变量和静态变量**存放在这个区域
2024-07-24 22:14:42
1232
原创 【Linux系统编程之文件】open()函数和fopen函数的对比,相关函数的使用
open()函数和fopen的对比,open()、write()、read()、lseek()、close()和fopen()、fread()、fwrite()、fseek()、fclose()的使用,open是UNIX系统调用函数(包括LINUX等),返回的是文件描述符(File Descriptor),它是文件在文件描述符表里的索引。fopen是ANSIC标准中的C语言库函数,在不同的系统中应该调用不同的内核api。返回的是一个指向文件结构的指针。
2024-07-24 19:00:34
1707
原创 【STM32】理解时钟树(图示分析)
AHB 时钟 (HCLK):由系统时钟 SYSCLK 通过 AHB 分频器提供,负责驱动内核、存储器和 DMA 等高速外设。 - APB1 时钟 (PCLK1):通过 APB1 分频器从 HCLK 提供,驱动低速外设如 UART、I2C、SPI 等。 - APB2 时钟 (PCLK2):通过 APB2 分频器从 HCLK 提供,驱动高速外设如 GPIO、ADC、TIM1 等STM32F103C8T6 支持多种时钟源,包括: - 高频外部晶振 (HSE):通常用于高精度的外部晶振,可以是 4-16
2024-07-21 18:09:27
1531
原创 【中断】STM32F103C8T6中断系统(图示)
外设触发中断请求:例如,定时器溢出或 GPIO 变化触发中断。 2. NVIC 接收中断请求:中断信号传递到 NVIC。 3. 中断优先级比较:NVIC 判断中断是否能立即处理,若能,则执行下一个步骤。 4. 保存上下文:Cortex-M3 自动保存当前 CPU 状态到堆栈中。 5. 读取中断向量表:NVIC 从中断向量表中获取 ISR 的入口地址。 6. 跳转到 ISR(中断处理程序):跳转到 ISR 地址,开始执行中断处理函数。 7. 执行中断服务例程(ISR):处理中断事件,执行相应的逻
2024-07-20 16:53:26
3066
原创 【I²C协议】STC89C51单片机IIC通信(代码+原理)
IIC,即I²C,所以中文应该叫 集成电路总线 ,IIC属于半双工同步通信方式。IIC串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL,其时钟信号是由主控器件产生。所有接到IIC总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。IIC总线在传输数据的过程中一共有三种类型信号,分别为:开始信号、结束信号和应答信号。
2024-07-17 18:56:16
1275
原创 【 DHT11 温湿度传感器】使用STC89C51读取发送到串口、通过时序图编写C语言
使用80C51单片机通过读取HDT11温湿度传感的数据,发送到串口。通过时序图编写相应的C语言代码。只有一根数据线DATA,单片机发送序列指令给DHT11模块,模块一次完整的数据传输为40bit,高位先数据格式:**8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验**
2024-07-16 17:58:09
995
原创 【 LCD1602显示屏】使用STC89C51控制1602显示、读写操作时序
LCD1602(Liquid Crystal Display)是一种工业字符型液晶,能够同时显示 16×02 即 32 字符(16列两行。初始化LCD1602:发送初始化指令,使LCD1602进入8位模式,并设置显示参数(如光标显示、显示开关等)。 2. 指令发送:使用80C51向LCD1602发送命令和数据。通过控制RS、RW和E引脚,并发送8位数据。 3. 编写显示函数:编写函数以在LCD1602上显示字符和字符串,包括光标移动、清屏等功能
2024-07-16 13:38:29
1544
原创 【无线模块】Wifi模块-ESP-01s的使用
【无线模块】Wifi模块-ESP-01s的使用AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data TerminalEquipment,DTE)向终端适配器(Terminal Adapter,TA)或Terminal Equipment,DCE)发送的。数据电路终端设备(Data Circuit 其对所传输的数据包大小有定义:即对于AT指令的发送,除AT两个字符外,最多可以接收1056个字符的长度(包括最后的空字符).每个AT命令行中只能包含一条AT指令;
2024-07-15 19:13:37
907
原创 【STC89C51单片机】串口通信
STC89C51RC/RD+系列单片机内部集成有一个功能很强的全双工串行通信口,与传统8051单片机的串口完全兼容。设有2个互相独立的接收、发送缓冲器,可以同时发送和接收数据。发送缓冲器只能写入而不能读出,接收缓冲器只能读出而不能写入,,因而两个缓冲器可以共用一个地址码(99H)。两个缓冲器统称串行通信特殊功能存器SBUF。
2024-07-14 23:48:04
1708
原创 【STC89C51单片机】定时器中断系统
中断是一种重要的硬件机制,用于在处理器正在执行程序时,能够及时响应某些外部或内部事件。中断可以临时中止当前正在执行的指令序列,转而去执行专门的中断服务程序(ISR,Interrupt Service Routine),以处理这些突发事件。中断处理完毕后,处理器可以返回原程序的执行位置,继续执行未完成的任务。不同的中断源可以有不同的优先级。当多个中断同时发生时,优先级高的中断会先被处理。例如在8051微控制器中,可以通过中断优先级寄存器(IP)来设置各个中断的优先级。EA总中断要置一 EA = 1。
2024-07-13 20:01:51
509
原创 【C语言】链表的遍历、前插入和后插入
链表是一种数据结构,用于存储具有线性关系的数据元素。与数组不同,链表中的元素在内存中的位置不一定是连续的。链表中的每个元素称为节点,每个节点包含两个部分:数据域和指针域。指针域用于指向下一个节点,从而将各个节点连接起来形成链表。
2024-07-13 19:04:15
181
原创 【Ubuntu】在Ubuntu中鼠标箭头滑动消失
在Ubuntu中鼠标箭头滑动消失,VMware中安装Ubuntu20.04滑动鼠标箭头消失经过多次测试发现只有在主机中设置鼠标属性显示指针轨迹才可以正常显示。
2024-07-13 15:27:30
294
原创 【STC89C51单片机】定时器/计数器的理解
80C51有两个定时器/计数器:Timer 0和Timer 1理解定时器与计数器的区别在于触发计数增加的信号源。作为定时器,每经过一个机器周期计数加1;作为计数器,则是外部引脚(P3.4或P3.5)每检测到一次负跳变即加1。通过寄存器设置,单片机可灵活转换这两种功能。标准C51有2个定时器/计数器:T0和T1。他们的使用方法一致。C52相比C51多了一个T2定时器的本质原理: 每经过一个机器周期,就加1 :寄存器(存储数据的高速小容量存储单元)为什么是1us,我粗俗的理解为方便后期的计算``为什么是1
2024-07-13 11:49:31
2799
原创 【Ubuntu】VMware虚拟机的网络配置(桥接模式)
配置虚拟机的网络,主机:Win11软件:VMware® Workstation 16 Pro镜像:ubuntu-20.04.6-desktop-amd64VMware网络设置主要在虚拟网络编辑器,里面可以进行仅主机、NAT、桥接和自定义的网络设置。当我正常双击打开时只有主机、NAT模式,当我点击更改设置,会设置成桥接模式,但是下次使用时又会出问题
2024-07-12 23:32:50
790
1
原创 【Ubuntu】FileZilla尝试连接“ECONNREFUSED - 连接被服务器拒绝”失败。解决方案
使用的VMware中Ubuntu的虚拟机,用FileZilla尝试连接出现**状态: 尝试连接“ECONNREFUSED - 连接被服务器拒绝”失败。错误: 无法连接到服务器**但是我在主机和虚拟机之间相互ping是相同的。
2024-07-12 18:57:24
853
原创 【C语言】一个字节有多少位
数据存储是以“字节”(Byte)为单位,数据传输是以大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位。在16位的系统中(比如8086微机) 1字 (word)= 2字节(byte)= 16(bit)在32位的系统中(比如win32) 1字(word)= 4字节(byte)=32(bit)在64位的系统中(比如win64)1字(word)= 8字节(byte)=64(bit)
2024-07-12 11:50:00
297
原创 【虚拟机】VMware16ubuntu20.04鼠标在移动过程中消失
VMware® Workstation 16 Pro鼠标在移动过程中消失(ubuntu-20.04.6-desktop-amd64
2024-07-12 10:17:05
950
原创 【C语言】结构体指针访问结构体(->的理解)
并不是一个独立的“指针运算符”,而是一个用于指针的成员访问运算符。它用于通过指针访问结构体或联合体的成员。是一个组合运算符,可以看作是解引用运算符 (*) 和成员访问运算符 (.) 的结合。为什么结构体通过指针访问的时使用"->",而不用 " . "
2024-07-10 17:22:56
379
原创 【C语言】字符串与相关操作函数
本文概述了C语言中字符串的定义、操作和内存分配。字符串以空字符'\0'结尾,可通过字符数组或指针定义。区分了`sizeof`和`strlen`函数的使用,解释了动态内存分配函数`malloc`、`realloc`和`free`,以及内存初始化函数`memset`。此外,介绍了如何使用`strncpy`和自定义函数进行字符串复制,并提供了`assert`断言和`strcat`字符串连接函数的使用示例。强调了内存管理和字符串操作时的注意事项。
2024-07-10 11:03:39
2023
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人