自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(202)
  • 资源 (1)
  • 收藏
  • 关注

原创 Yolov8_使用自定义数据集训练模型1

收集图片:收集一批带有目标物体的图片【images文件夹下.png图片】标注目标物体:使用标注工具对图片中的目标物体进行标注【xml_labels文件夹下.xml文件】划分数据集:将整个数据集按一定比例分为训练集、验证集、测试集【使用split_dataset.py脚本生成split_dataset_txt文件夹中的.txt文件,.txt文件内容是不含后缀.xml的文件名】

2024-01-17 18:03:27 1903 1

原创 Jetson_yolov8_解决模型导出.engine遇到的问题、使用gpu版本的torch和torchvision、INT8 FP16量化加快推理

虽然我确认刚才选择的torch和torchvision版本是匹配的,而且在【3.2.4】小节也实际打印出了版本符合要求,但还是提示不兼容,这就想到了【3.2.2、安装torch v2.1.0】时产生的报错,可能系统使用的是没卸载干净的torchvision v0.16.2,于是使用pip list再次查看,果然torchvision版本是v0.16.2.于是再次卸载torchvision,注意指定版本0.16.2,因为刚才还安装了0.16.1.

2024-01-12 20:24:03 3323 10

原创 YOLOv8_测试yolov8n.pt,yolov8m.pt训练的时间和效果、推理一张图片所需时间_解决训练时进程被终止killed

接上篇的进一步测试,只是好奇,建议浏览一下就行,不需要浪费时间走一遍这个流程。

2024-01-10 17:53:28 5279 2

原创 英伟达Jetson搭建Yolov8环境过程中遇到的各种报错解决(涉及numpy、scipy、torchvision等)以及直观体验使用Yolov8目标检测的过程(CLI命令行操作、无需代码)

本文以记录分享、体验/体会如何使用Yolov8为主,实现搭建Yolov8环境以及CLI命令行执行训练、使用模型进行目标检测。官方链接:快速开始 - Ultralytics YOLOv8 文档,开始输入第一条指令,等待第一个报错吧hhh2.1.2、执行结果尝试手动卸载numpy1.21.5,发现根本就没有,Found existing installation是1.26.3,既然系统找不到旧的且能识别出新的numpy版本,那这个卸载报错先不管。ERROR:pip's dependency resol

2024-01-10 17:09:35 3385 3

原创 NVIDIA Jetson环境VSCode安装记录,前期失败问题在于英伟达使用的是arm64架构

如果你的NVIDIA Jetson没有安装浏览器,或者安装遇到一些中文显示问题,可以看我写的这篇文章也许对你有所帮助,报错的关键提示是"unmet dependencies",也就是“未满足的依赖”,但是并没有说明具体是什么,所以。打开VSCode之后,默认弹出的第一个配置就是主题选择,根据喜好选择Dark或Light.,而且是选择链接中最简单的方式“图形化界面”安装,遇到了如下报错。安装包的架构不对,英伟达是arm64,而默认下载的是amd64。选择.deb下面的“Arm64”来下载安装包,如下图。

2024-01-08 14:28:14 1325

原创 Jetson Orin Nano_安装jtop指令(遇到循环提示重启服务的问题)、查看系统运行情况及基本信息

JetPack是建立在L4T之上的软件开发工具包(SDK),它包括各种工具和库,旨在使为NVIDIA的Tegra嵌入式系统系列开发应用程序变得更容易,安装JetPack之后就包括下图的CUDA、cuDNN、TensorRT库等;L4T是Linux for Tegra的缩写,Tegra是jetson系列使用的架构名称,L4T就是为英伟达jetson系列定制的Linux发行版。具体哪个系统适配哪个版本不确定,我尝试过失败了,还试过V3.1.4,但是根据搜索到的文章有人用降低版本的方式成功解决过这个问题。

2024-01-05 14:31:25 1576

原创 Ubuntu安装浏览器(火狐)以及出现网页中文乱码问题

中间过程比较久,尤其是卡在“INFO Waiting for automatic snapd restart...”,而且这时候可能已经出现了浏览器的图标并且无响应,不要误以为失败了就退出terminal,再等等。安装完之后,可以打开浏览器了,但是去百度就会发现数字、英文显示正常,中文乱码,都是小方块。注意:操作完之后不是重启浏览器,而是重启系统才会生效。

2024-01-04 19:19:13 2425

原创 Jetson Orin Nano_初识,关于板载资源

Jetson Download Center | NVIDIA Developer,下载Jetson Orin Nano Developer Kit Carrier Board Specification文档,这个文档目录如下:NVIDIA Jetson 嵌入式系统开发者套件和模组

2024-01-04 15:43:26 1188 1

原创 编译器功能__attribute__介绍和官方资料来源

_attribute__不是C语言本身的关键字,而是属于编译器扩展的C语言的功能,中可以找到关于attribute的几个章节,Function Attributes【函数属性】、Variable Attributes【变量属性】、Type Attributes【类型属性】、Label Attributes【标签属性】、Enumerator Attributes【枚举属性】、Statement Attributes【语句属性】、Attribute Syntax【属性语法】;​。

2024-01-03 17:22:33 406

原创 以优先级和中文语法的方式永远记住数组指针和指针数组

指针数组,说明本质上是数组,数组元素是指针。数组指针,说明本质上是指针,指向的是数组。优先级从高到低分别是:()、[ ]、*在中文中,重要的东西放在后面。

2023-12-08 14:00:48 112

原创 RT_Thread_使用FAL组件配置stm32f407片上flash读写

先看下struct fal_flash_dev的具体成员,有flash设备名字、flash起始地址、flash大小、块大小(执行擦除时的最小颗粒)、操作函数(init、read、write、erase)、写操作最小颗粒度;size_t len;第一部分:宏定义各扇区的起始地址第二部分:读、写、擦除第三部分:使用了FAL之后的FLASH设备定义以及对于的读、写、擦除操作函数。

2023-12-07 16:58:25 1151 1

原创 RT_Thread_修改为外部晶振及验证

根据实际外部晶振的频率去定义,使用的是8MHz;

2023-12-07 10:59:24 237

原创 RT_Thread_msh_系统msh命令、使用msh时过滤ulog日志、添加msh命令(不带/带参)

clear是清屏、version是打印内核版本、list会列出关于系统的各种信息、ps列出线程信息、free是查看内存使用、pin是控制GPIO、reboot重启系统;因为使用ulog功能,所以就会打印出很多日志信息,但是使用msh的时候又不希望这些信息刷屏,所以可以临时过滤日志方便交互、或者终端开启滚动锁定。调试过程中遇到msh不能使用,理解msh也是一个线程,有自己的优先级20,高优先级的线程(比如main是10)如果一直执行,就会阻塞msh。

2023-11-30 14:41:03 1261

原创 RTT_探索ulog组件的使用1(全局静态日志等级、模块静态日志等级、过滤模块日志(打开/关闭/动态日志等级)、同一个文件输出多个模块日志、不在rtt studio如何显示彩色日志)

比如,执行下面这条命令后,模块module1的日志等级会临时变为WARNING,这里所说的临时是相对于宏定义中的日志等级,下面5会提供一个实验。前期开发,比较细致的信息可以使用Debug等级去输出,后面调试完毕提高日志级别就可以了,此时不要堆积大量信息,保留关键性环节的执行。不能使用LOG_X这个API,改为ulog_x,x=e/w/i/d,就可以自定义输出日志的模块名称。还发现一个优点,输出日志保存到文件,MobaXterm会自动去掉关于颜色的信息。在不同的开发阶段,想要输出的信息是不同的。

2023-11-29 14:46:10 490

原创 RT_Thread_内核包版本与芯片包版本不一致的编译报错排查

Ctrl+H,在工程中直接搜索“RT_WEAK”试试看,这个操作不一定成功,因为不知道改动成什么了,如果“RT_WEAK”搜不到我可能会尝试搜索“weak”。可以看到内核中使用的是小写的rt_weak,但是芯片SDK使用的是大写的RT_WEAK,这就是错误的原因。直接将报错的RT_WEAK改为小写的rt_weak或者再加一个宏定义,#define RT_WEAK rt_weak。

2023-11-28 14:42:15 1539 8

原创 Keil报错_Error:CreateProcess failed,Command:‘xxx\fromelf.exe‘

2、当你需要生成bin文件时,修改此电脑安装keil时正确的fromelf.exe路径。(对于我,只是修改盘符为D即可)下面链接是我之前写的,关于如何使用keil生成bin文件的说明,复习。1、当你不需要生成bin文件时,可以选择不执行这个命令。错误原因:fromelf.exe路径错误,无法执行命令。发生情景:编译从另一个电脑拷贝的代码时。

2023-11-27 15:00:51 1688

原创 Linux_/proc目录_查看处理器的信息/proc/cpuinfo

MIPS是millions of instructions per second(百万条指令每秒)的缩写,其代表CPU的运算速率。声明:以上信息部分来自GPT,在核实的过程中某些百度不到,对于我能发现的错误说法进行了纠正,毕竟我也不知道这些特性到底是什么意思。BogoMIPS是Linux大致计算出的MIPS,大致反映了CPU的运算速率。可以看到板卡有4个处理器,剩下的信息emmm......

2023-11-16 23:48:55 631

原创 Linux_系统信息_uname查看内核版本、内核建立时间、处理器类型、顺便得到操作系统位数等

使用uname --help查看uname命令的帮助信息。通过上面的help就知道-a选项显示全部内容时的含义了。

2023-11-16 23:34:50 694

原创 Linux_在命令行中以树状结构显示目录_tree

使用tree命令,可以在命令行中以树状结构显示目录,当你想知道一个路径下文件的结构时十分方便,还有别的选项功能,下面会介绍其中的一些,完整的介绍。但是也可能存在下面这种情况,文件非常多,所以有2.3指定目录的层级。或者你希望从整体开始了解该目录的时候,可以逐层展开,心里比较清楚。直接tree 路径,显示该路径下的全部文件和文件夹,很方便。-d,来源于“directory”,只显示路径下的文件夹。-L,来源于“level”,指定搜索的层级,n是层数。-f,显示完整的相对路径;-i,不以树状结构显示;

2023-11-16 10:20:30 316

原创 Linux_包管理_apt和apt-get、apt upgrade会自动升级内核

apt-get upgrade也会升级软件包,但默认情况下不会升级内核,要升级内核,需要单独运行apt-get dist-upgrade命令。简单来说,apt更容易使用(比如显示下载和卸载的进度条,升级会显示一共有多少个包),apt是apt-get和apt-cache的结合。大部分情况下升级内核是修复已有漏洞,优化性能,但是也有可能会导致不稳定,已安装的软件在新的内核下无法兼容的问题。apt upgrade会自动升级所有可用的软件包,包括内核和其他软件包。都可以用于升级软件包。这篇文章说的很详细,

2023-11-15 13:32:34 2037

原创 Linux_包管理_apt相关命令的使用

以思维导图的形式整理了下apt相关的命令,便于查阅,主要分为软件源、安装卸载升级、查看;

2023-11-15 11:57:02 128

原创 Linux_一款好用的查看系统信息的桌面软件_包名hardinfo、软件名system profiler and Benchmark

打开,system profiler and Benchmark。安装,sudo apt install hardinfo。这个页面要是能自定义就好了,会更加个性化和实用。对源进行更新,sudo apt update。一共有四核,各个CPU的类型、架构、频率;

2023-11-15 10:46:56 398

原创 Linux_磁盘管理_df命令

inode”来自于“index node”,索引节点,索引节点存放的是文件的编号、文件大小、创建时间、修改时间、权限等。使用df命令可以查看系统中磁盘的占用情况,有哪些文件系统,在什么位置(挂载点),总空间,已使用空间,剩余空间等。这说明除了空间大小有限,inode的数量也是有限的,所以其实可能存在空间还够,但是inode达到上限。指的是目录x所在文件系统的磁盘占用情况,不是说这个目录x本身的磁盘占用情况。-k,以1k字节为单位,和默认的单位是一样的(下面有实际测试);-m,以1M字节为单位;

2023-11-13 22:49:29 564

原创 Linux_安装时出现“Unable to locate package xxx”,sudo apt-get update和sudo apt-get upgrade

使用了第一条命令“sudo apt-get upgrade”,返回“0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded”,也就是说这条命令啥也没干。使用“sudo apt install x11vnc”想要安装x11vnc,然后报错“unable to locate package x11vnc”,意为找不到这个安装包,然后百度。x11vnc,我都没安装这个软件,upgrade当然没效了,理解这两条命令的区别,下次就会使用了。

2023-11-12 17:14:41 397

原创 这个锂电池保护方案来自TIDA-010030

得到该电池的电量计芯片型号、IIC从机地址、通信的实际波形;

2023-09-15 18:13:18 1336

原创 stm32f4_奇怪的bug_串口数据错乱,一个串口收到另一个串口的数据

接收IO口上拉改为无上下拉,串口4就正常了。因为是时不时出现,考虑可能只是降低bug复现概率,所以运行了一晚上,都是正常的,大概两万次吧,一次都没出现了,但是:

2023-09-07 18:11:14 1711

原创 库仑定律和场强

此时q2受到的力虽然变了,但是是因为自身的电荷量,q2所处的环境对这个力的贡献是不变的,把q2电荷量的作用分开,这个环境描述的就是q1在q2位置产生的场强;静止,不是必要条件,在某一时刻两个电荷距离是确定的,瞬时的作用力仍然满足库伦定律。用 放入其中电荷受到的电场力 和 自身电荷量q 的比值来定义此处的场强。真空,不是必要条件,修改公式中介电常数的值仍然满足库伦定律。在两个电荷的连线上,同种电荷相互排斥,异种电荷相互吸引。如果q2变成了2倍的q2,那么F也会变成2倍的F。单位矢量仅代表方向,大小为1。

2023-08-31 21:15:00 391

原创 根据逻辑分析仪实际波形,解析IIC通信及可能出现的问题(从机控制时钟SCL)

IIC的全称是Inter IC,意为IC器件之间的通信协议,占主导地位、负责控制何时开始/结束通信、通信什么特定内容的器件称为主机,被控的器件称为从机。响应是在发送端发送一个字节的数据后,下一个时钟周期高电平期间,数据线上的电平状态,低电平0代表响应,高电平1代表不响应;主机首先作为发送端,7位从机地址+1位写,代表主机向从机写数据,主机将继续作为发送端,那么从机就是接收端;主机首先作为发送端,7位从机地址+1位读,代表主机从从机读数据,主机将转而作为接收端,那么从机就是发送端;

2023-08-29 18:55:58 3498 4

原创 关于stm32推挽带有上下拉电阻的思考、IO口驱动能力是什么

记忆中推挽是不需要上下拉的,没关注过,但是我真的理解上下拉吗,下图来自stm32f4的中文版和英文版的数据手册,没有翻译错,就是“推挽带有上下拉的能力”。搜索到一篇推挽上下拉的文章,实际测试表格如下,从他的数据来看,推挽不加上下拉对低电平的影响很大,直接变成了1.2V。我不信,于是开始测试,推挽加或不加上拉电阻,高电平是3.270V,低电平是0.006V.驱动,动词,做谓语,宾语是什么,驱动什么,驱动负载,驱动能力指的是驱动负载的能力。驱动,动词,做谓语,主语是什么,什么来驱动,电源。

2023-08-23 13:00:16 4072 7

原创 贴片电阻的额定功率

作为替代方案可通过“测量产品附近的电路板温度”或“测量产品上方约1cm处的空气温度”来测量温度。:在额定环境温度中可在连续工作状态下使用的最大功率值。额定环境温度为70℃、使用环境温度为130℃时。:能够100%施加产品额定功率的最高环境温度值。:电阻未被施加功率时,周围的温度。在下图中,70℃为额定环境温度。在JIS标准中,环境温度被定义为。大概额定功率降到了30%;

2023-08-21 23:30:00 671

原创 电阻的含义、公式

式中ρ为比例系数,由导体的材料和温度所决定,称为电阻率。它的国际单位制是欧姆·米 (Ω·m),等于1m³导体的电阻值;

2023-08-21 20:00:00 310

原创 iar_跳转错误,提示包含错误的路径

换电脑了,改文件夹路径了,改文件名称了,但是跳转的时候仍然按照原来的路径去搜索,所以找不到报错。先Clean清除掉原有的,然后再Make编译一次。

2023-08-21 10:35:09 971 1

原创 为什么贴片电阻的阻值不规律?为了在某精度下做到阻值的全覆盖(对,但不全对),E系列电阻的算法(E12系列值不对的猜想)

为什么E12的表错了呢?第一种可能,1952年出的第一版其实没有E96,随着生产的水平,电阻的阻值才逐渐精确,E12的精度是10%,±10%误差很大的,那时候开根号的计算水平会不会也不行呢。第一个是10Ω,然后依次计算出b【四舍五入】,最后到100刚好是12个间隔,100到1000,1000到10000依次循环;第二种可能,就是有这个计算能力,但计算错误,而且没人认真算过并及时提出来,所以这个错误就这样存在了。实际计算的表格如下,对照上图E12可以看到,在33之前都是没问题的,后面就越差越大,所以,

2023-08-18 20:00:25 697

原创 贴片电阻封装尺寸及焊盘尺寸

通常说的都是英制,比如0603指的是inch单位下的0.06inch和0.03inch;有英制和公制之分,英制的单位是inch,公制的单位是m;(m、cm、mm只是进制不同)下图有inch和mm的对照、常见的功率,看着比较方便,不过并不代表一定如此;略有不同,这个是实际生产电阻的数据,也包括了引脚的尺寸;下图截取自厚声电阻的数据手册;下图截取自厚声电阻的数据手册;

2023-08-18 18:05:40 2885

原创 E96系列电阻阻值和代码、乘数对照表

个人理解,0805封装还可以简单易懂写下四位丝印,比如10K的1002,但0603的封装上面再想写下四位丝印就没空间了,就算写了也不容易看不清。可以记最后一位ABC,大概看到知道范围吧,A:100Ω~1K,B:1K~10K,C:10K到100K。下面是E96系列的对照表,记不住,用到随时查吧。

2023-08-18 17:40:11 1790

原创 stm32_ADC电源、通道、工作模式

2.2.1、规则/注入通道和上面19个通道的关系看框图,不管是规则通道和注入通道,都是19通道中经过复选其中的1个通道。2.2.2、1次只能转换1个通道,如何利用多个通道?按照事先配置的顺序去执行,比如你想转换ADC1_IN2、ADC1_IN10、ADC1_IN5,那么就是这3个通道轮流,就可以检测到多个通道了,这就是序列。

2023-08-16 18:56:15 3814

原创 NRF24L01+数据手册_关于几种工作模式

使用的是官方数据手册的章节编号,原文截图方便对照,部分翻译(标蓝)、个人理解(标紫),关键信息(标红)。6.1 Operational Modes操作模式。

2023-08-15 18:51:02 866

原创 stm32_断点调试无法进入串口接收中断

先说结果,可能是stm32调试功能/keil软件/调试器(试过STLINK和JLINK两种)的问题,不是代码;

2023-08-09 12:24:40 8108 4

原创 SPI通信

SPI的S代表Serial,串行通信,也就是一位一位的发送数据,“一位一位”就是通过移位寄存器。写某个寄存器:发送要写的寄存器的地址,MOSI发送5个字节;读某个寄存器:发送要读的寄存器的地址,MISO接收5个字节;CSN片选、SCK时钟、MOSI主发从收、MISO从发主收。CSN片选,主从双方在时钟的同步下发送或接收数据。

2023-08-07 15:50:26 505

原创 stm8_独立看门狗配置顺序错误导致不断复位

按照手册中的表格,看门狗的超时时间应该是1s,但是在这1s中多次喂狗也不断复位,然后排查到是配置顺序的问题,先开启开门狗,再配置寄存器可以解决。在配置stm8独立看门狗的时候,先设置分频、重载寄存器,然后启动看门狗,发现不断复位。想要配置好再启动的想法,只是一厢情愿,指单方面的愿望或不考虑客观实际情况的主观意愿。Once enabled,使能后,所以,先使能配置才有效。

2023-07-31 14:04:30 533

STM32F10x大中小容量启动文件.zip

STM32F10x小容量启动文件,文件名"startup_stm32f10x_ld.s"; STM32F10x中容量启动文件,文件名"startup_stm32f10x_md.s"; STM32F10x大容量启动文件,文件名"startup_stm32f10x_hd.s";

2020-08-06

空空如也

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

TA关注的人

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