- 博客(13)
- 收藏
- 关注
原创 句柄的理解(句柄是handle这个就是句柄的英文)
htim1就是当句柄来用的,因为用的时候,传入的HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim)是指向结构体的指针TIM_HandleTypeDef *,这个就是句柄。理解句柄,看写的这个笔记就可以了,要结合代码理解,句柄就是对于一个指向结构体的指针的这个类型,取一个别名,结构体是配置底层一些东西的,所以句柄可以说是对于指向底层实例的指针的一种引用。这个句柄比普通的,我上面笔记的那个句柄更高一层,多了一层结构体。
2025-10-02 12:43:13
377
原创 结构体指针
这个是通过指针传递,也就是指向结构体的指针,那么哪个对呢?显然是传入指针的对,因为c语言的函数的输入参数只作用于函数内部,他只是一个值传递也就是函数内部对参数进行了修改,并不会在外部作用出来,用AI的话来说,你的 qmi8658_Read_AccAndGry 函数参数是 t_sQMI8658 p,这是值传递,函数内对 p 的修改不会影响外部的 QMI8658 变量。通过传递地址进去,在函数内部修改这个地址指向的空间的值。这一个,函数是传递的直接结构体参数,,然后结构体指针有两种写法,
2025-10-02 12:38:34
243
原创 对STM32启动程序、内存管理、函数调用、堆栈的底层理解+malloc提问
stm32在程序运行到main函数之前,会执行start文件里的两个文件,第一个是startup_stm32f10x_md.s,如果芯片不同,启动文件也会不同,参考下图。这里以f013rct6为例子进行讲解,当然除了这个.s文件,另一个文件就是system_stm32.c文件,这个是用来配置系统时钟的文件,很好理解,只需要选择你需要的时钟,注意一下分频器这些东西就可以了,此处不做过多解答,主要了解内核。说到底,stm32也是一个单片机,所以他的底层,跟单片机课程上的是基本一样的。
2025-09-27 19:02:36
1081
原创 树莓派5开机自启动python程序(含虚拟环境问题解决)
在写好python程序后,比赛时往往需要开机自动运行python文件,在网上搜了很多方法,推荐是用systemd,但是这种方法我并未尝试成功,如果需要用到虚拟环境,则更加复杂,这里介绍更加简单的方法,适用于树莓派5,相信更低版本的树莓派也可以使用。需要添加代码,使开机时先激活虚拟环境再运行程序,这样才能保证程序正常运行。/home/pi/miniconda3/bin/python3 /home/pi/yolov8/ultralytics-main/test.py是需要运行的yolov8程序地址。
2025-02-22 18:54:48
638
2
原创 YOLO V8使用ncnn部署教程
由于NCNN 针对移动/嵌入式平台(如 ARM 架构)进行了高度优化,因此在使用 Raspberry Pi 设备时可提供最佳推理性能。因此,我们建议在使用 Raspberry Pi 时使用NCNN。之后便可以部署ncnn,注意,yolov8也提供了一键部署ncnn的方式,可以直接使用ncnn模型进行目标检测,不用找ncnn官方源码进行部署。如果提示没有ncnn模块可以pip install ncnn下载。yolov8提供了一键.pt转onnx的教程。转换完成会得到这样一个文件夹。
2024-12-19 20:58:04
685
原创 使用清华源下载pytorch出现无法使用cuda的问题
在一次搭建yolov5环境的时候需要下载torch,在下载时我切换到了清华源下载,结果下载好的torch无法与cuda匹配,也就是torch用不了cuda,这一度让我怀疑是cuda安装的问题,重新安装尝试无果后也十分苦恼,后又尝试降低torch,还是没用,在摸索了几小时后,发现不使用清华源下载torch时会明显的显示一个2g左右的torch下载进度,虽然速度特别慢,但是如果使用清华源下载,会发现不会有这个torch的下载进度提示,所以我怀疑是这里的问题,于是尝试花两个小时不用清华源下载torch,结果下好真
2024-12-18 01:18:56
700
原创 X-AnyLabeling 配合yolov5或者yolo v8,yolo11等,使用yolo标签标注,半自动化数据标注
将第十行参数修改为store_false,训练更大的数据集,得到的模型会生成标签文件和带有识别框的源文件。此处我们需要的是这个标签文件。之后点击导入-导入yolo水平框标签,导入刚才的classes.txt文件和yolov5识别生成的标签文件。此处我们根据几十张手动标注的少量数据集来训练好了 权重文件。选择刚才的yolov5测试集地址也就是大量数据集的那个地址(source地址)导入图片。这样便由少数据集训练结果在大量数据集上打好了标签,之后查找标签错误的文件进行修改即可。之后点击导出yolo水平标签。
2024-10-26 12:03:38
4162
2
原创 Anaconda虚拟环境配置好后pycharm如何导入
conda环境->使用现有环境,导入Anaconda文件下的 Scripts\conda.exe。Anaconda虚拟环境配置好后pycharm如何导入?设置->项目->python解释器->添加解释器。在virtualenv环境下添加现有解释器。选择刚刚创建的虚拟环境解释器。创建项目,选择基础解释器。
2024-05-24 13:11:22
841
1
原创 亚博智能k210maxipy屏幕显示问题
在第一次接触k210的时候,由于我的开发板是亚博智能的,刷入maixpy屏幕显示翻转,并且颜色反了,通过调用三个函数即可解决问题。将改为并在while(true)循环之前加入
2023-09-10 17:10:14
1338
4
原创 平衡小车关于mpu6050的数字准备中断
所以当数据就绪后会产生一个低电平中断在int脚,要配置中断为200hz的频率,只需要配置数据采样频率寄存器的值与电源管理寄存器的时钟源,当电源管理寄存器(0x6b)配置为0x00时,选择的是8mhz的时钟源,这时想要200hz进行采样,即将采样频率分频器的分频值配置为39即0x27。作为一个大一萌新,刚学完32想做个小玩意儿顺带学习pid,在淘宝买了套件,但是看官方例程的时候有些懵,查阅了几次数据手册,以及很多大佬的讲解才终于懂了一些皮毛。由图,只需将中断使能寄存器配置为0x01即可使能数据就绪中断。
2023-04-23 14:52:08
4527
8
空空如也
VC++字符数组错误
2022-12-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅