自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【嵌入式】RT-Thread入门(一)内核移植

因为项目的关系,需要使用实时操作系统RT-Thread,虽然很早之前就听过他的大名,但一直没有正式接触,所以也算是入门,打算写几篇文章来记录一下自己的学习例程。

2025-03-09 21:00:33 1109

原创 【单片机】MSP430&MSP432入门

最近因为想学DSP,所以把之前卸载的CCS给装回来了,手头也还有之前电赛剩下的MSP430和MSP432的板子,由于年代久远,想着花点时间回忆一下,顺便整理之前乱七八槽的文件资料,以作备忘。不得不说,随着学习的深入,面对新的事物,已经没有之前的迷茫和冲动了,从容不迫才是学习的最高境界。本文主要是介绍了MSP430和MSP432在各个平台下的开发方式和基本开发流程,芯片外设和库的使用也只是起了一个头,后续如果有机会会再更新相关的外设使用以及实际代码编写等内容。

2025-02-26 11:40:53 1412 3

原创 【STM32】BootLoader和IAP详解

最近在研究一个RT-Thread的项目,遇到很多之前没咋遇见过的STM32相关的知识,想着顺带也整体过一遍。其中有一个很关键的部分就是BootLoader的实现,发现自己之前一直没有亲自实践过,只停留在理论阶段,于是想着亲自撸一遍代码,增加印象。

2025-02-14 09:30:19 1530

原创 【STM32】C语言整型提升与HAL库SysTick代码的思考

最近想在标准库中自己实现一个和HAL库一样的超时自动退出的功能,一般适用于一些耗时可能很长的函数。然后在看HAL库的代码时,发现systick定时器部分的代码对于自增的变量没有归零的操作,感觉很奇怪,于是一边上网找资料,一边和朋友讨论,才发现这背后的门道还挺多。在C语言中,定义一个变量需要使用数据类型,这其实决定了这个变量的存储空间。但在参与运算时,存在一个整型提升的概念。即在表达式计算时,各种整形首先要提升为int类型,如果int类型不足以表示则要提升为unsigned int类型;然后执行表达式的运算。

2025-02-11 22:05:59 685 2

原创 【电路设计】天线初试和PCB实践

最近在做一个esp32的项目,要用到WiFi功能,可惜手边带天线的模组很大,但板子面积有限,所以就想到使用esp32-pico-d4这个芯片级模组。那天线就得自己画。由于之前都没有实践经验,稳妥起见,先找了一个开源的项目参考,看到他使用的是一个陶瓷天线,而且就是从芯片无线引脚出来直连陶瓷天线,中间没有任何阻容感,看着挺简单,但是仿制打板回来之后,很遗憾地发现,芯片连不上网,那必然是电路哪里出问题了。于是,顺便研究了一下射频与天线的相关理论,略有收获,这里简单整理一下。

2025-02-07 11:15:51 1160

原创 【嵌入式】C语言多文件编程与内联函数

最近在研究ARM内核代码时,看到core_cm3.h中有大量的内联函数,为此查阅了很多资料,也和朋友讨论了很久,最后对C语言多文件编程有了一点不一样的体会,对此前很多习以为常的东西也知道了这么做的原因。特写此文以作总结。

2025-02-05 16:41:48 1073

原创 【STM32】存储分析深入——堆栈与map文件

最近在研究STM32的内存管理,看到网上流传的一个基于全局变量数组来实现malloc和free函数的例程,感觉有点奇怪:这个函数真的有意义吗?为了解答疑惑,查了一些关于堆栈的资料,有所解惑,特此记录。本篇文章主要介绍堆栈的相关知识和应用,如果想知道STM32存储器相关的内容,可以翻阅前期教程。

2025-01-15 09:47:35 1257

原创 【嵌入式工具】Keil的高级用法

最近因为学习STM的IAP功能,学到了很多关于Keil的高级用法,特写篇文章来分享一下。

2025-01-13 18:59:20 941

原创 【嵌入式】OpenOCD和半主机模式初体验

因为研究单片机的半主机模式,一直深入挖掘到OpenOCD工具的使用,看的内容较多,且有点杂乱,为整理思路,特写此文。总结一下,本文从研究半主机模式出发,大致介绍了OpenOCD这个工具的定位和作用以及最基本的使用方式,之后在STM32CubeIDE中通过OpenOCD实际体验了一下半主机模式的使用,发现这个确实可行,而且确实可以在调试时提供一点帮助。当然,最明显的问题就是这个模式的使用需要有调试器,当单片机安装在设备上之后就不太方便了。

2025-01-13 11:10:28 845

原创 【电路设计】三极管,MOS管开关电路设计

三极管,MOS管虽然可以用来设计放大电路,但简单的信号放大一般采用运放或者集成芯片来实现,在数字电路中,三极管和MOS管更多的是作为开关电路来使用,虽然之前课堂有学过,但总是容易忘记,这里做一次总结,以备查找。

2025-01-10 15:57:11 2439

原创 【嵌入式模块】QMI8568使用详解

因为项目的原因,需要使用QMI8658——一款国产的六轴姿态传感器。前前后后的开发过程中也踩了不少坑,于是想到写一篇文章来汇总记录一下。MPU6050开发可以参考这篇文章由于基于读取到的六轴数据解算的算法比较统一,和IMU型号无关,因此本篇文章主要从芯片角度来介绍QMI8658的基本使用,解算算法之后打算单开一篇文章进行总结。

2024-12-19 10:48:41 1896 6

原创 【嵌入式】IAR下载安装以及集成STM32和STM8

最近因为手边有一个STM8的开发板,想着有时间也可以研究一下STM8,作为8位单片机中性价比较高的型号,STM8现在还是有一些应用场景的。

2024-12-09 20:24:41 2323

原创 【电路设计】基于CD4511的八路抢答器电路解析

最近收拾东西的时候找到了本科阶段学电路焊接时焊的一个八路抢答器的电路板,如下图所示。一共有9个按键,左侧8个为抢答按键,依次对应1-8,按下之后会有蜂鸣器响声,同时数码管显示1-8;最右侧按键为清零按键,按下数码管显示0,蜂鸣器不响。数码管显示可以锁存,即按下1-8之后,再按下其他按键,数码管显示不变,只有重新清零之后才能改变。给电试了一下,电路还可以正常运行,突然想到好像我还没搞明白这个电路是咋实现的,于是找了一些资料,详细介绍一下这个的原理。

2024-11-24 13:32:42 3897 2

原创 【GD32】(三) ISP基本使用

有一块GD32的板子不知道为啥用着用着就下载不了程序了,没办法,只能另寻他法。作为STM32的平替,GD32的功能和STM32基本是一致的,所以也可以使用ISP来下载程序。于是就开始复活这块板子。

2024-11-23 20:53:02 895

原创 【MATLAB】续行符号对字符串失效

本文主要介绍了在MATLAB中字符串换行时续行符号失效的问题并提供了解决办法

2024-11-21 23:15:31 452

原创 【STM32】启动配置和自动串口下载

最近在研究STM32时,在下载程序时遇到了一些问题,在查找相关资料并结合自己的实践后,突然发现自己之前对STM32程序下载和启动配置等理解存在较大的误区,特写篇文章记录一下。本文研究了STM32芯片的启动配置和自动下载电路,试图简化自动下载电路,但实测发现当前流行的自动下载电路确实是最优解。虽然没有创新电路,但理清楚了电路设计的原理,对芯片的理解也更加深入。值得一提的是,GD32的启动模式和STM32是一致的,所以如果有串口下载的需求,可以直接复制本文贴出来的一键下载电路。

2024-11-20 23:32:03 1720

原创 【Python】问题解决:yaml文件加载得到字符串而不是字典

一开始一直以为是代码上的问题,找了很久,最终发现竟然是yaml文件写错了,格式不对。yaml文件类似于json,是一种字典式的结构,但要注意格式问题。最近需要使用python处理yaml文件,但使用过程中发现只能输出字符串的格式,而不是想要的字典格式。其实从VS Code的代码高亮也能看出来,第一个都没有区分识别key和value。在python中想要读写yaml文件,可以安装使用第三方包。

2024-11-17 11:58:38 458

原创 【嵌入式】ESP32开发(一)ESP-IDF概述

对于ESP32的开发,方式有很多,比如先写入MicroPython固件,然后再使用python语言开发;或者是使用Arduino IDE开发;或者是使用PlatformIO开发;当然最直接的还是使用官方推荐的IDF套件来开发,这个套件包含了常用的各种组件,功能比较全面,但是弊端也很明显,那就是它基于CMake框架进行编译构建系统,对于新手来说不太友好,但耐心学习一下官方的资料以及CMake的一些基础知识,就可以渐入佳境。

2024-11-13 22:54:48 5804

原创 【STM32】基于SPI协议读写SD,详解!

因为项目需要,使用stm32读写sd卡,这一块网上的资料很多,但是比较杂乱。有些是不能跑,有些是代码可以跑,但是相关的注释或者配置方法、流程不够清晰明确,于是花了几天时间,研究了几个成功案例之后,总结出一个相对明确的流程。基于STM32F103C8T6网上有各种流传的例程,经过测试确实可以用,但是魔改得有点多,个人觉得不是很便于理解,所以想着能不能从最开始的FATFS包来自己手动移植一个,最好是这个流程完全可复制,操作也非常简单,就像一个插件一样,基本实现模块化。

2024-11-13 22:33:35 2101 1

原创 【Linux】阿里云服务器搭建gradio实例

因为课程原因,需要做一个大模型相关的大作业,想到之前买的阿里云服务器,便想在服务器基于大模型API部署一个聊天机器人。因为是新手,特地做个记录,供初学者参考。从上面安装的几个软件来看,其实Linux端安装软件还是有规律可循的,主要就是那么几步:configure,make,make installlink1link2。

2024-11-13 22:29:30 1764

原创 【MATLAB】目标检测初探

之前因为项目原因,做了一个基于YOLOv5实现目标检测的程序,是基于Python做的,直接使用YOLOv5开源库,只需要导入数据训练再运行特定文件即可,简单的操作得到优秀的结果。因此当时没有仔细研究代码,更没有深究目标检测相关理论。最近学习了一些MATLAB中目标检测相关的内容,于是想结合官方文档和demo重新实现之前那个项目,作为一个入门参考。所谓目标检测(Object Detection),其核心任务是从图像或视频中识别并定位感兴趣的对象,这不仅要求高准确率的分类,还需要精确的位置预测。

2024-11-13 22:27:02 1740

原创 【GD32】(一) 开发方式简介及标准库开发入门

因为项目关系,需要使用GD32。之前对此早有耳闻,知道这个是一个STM32的替代品,据说甚至可以直接烧录STM32的程序(一般是同型号),但是GD32型号的编排更加复杂,不能和STM32一一对应,所以,从长远角度来看,还是建议按照官方推荐的方式来开发,其实本质上和STM32开发是差不多的,所以对于熟练STM32开发的人来说上手还是挺快的,关键是要学会查找和使用资料。GD32开发资料下载——记得点开右上角的箭头可以展开更多。

2024-11-13 22:20:26 2008

原创 【嵌入式开发】单片机CAN配置详解

CAN外设作为一种传输速率较高,且连线较为简洁的通信协议,如今很多单片机内部都集成了CAN控制模块,这样只需要再外接一个CAN收发芯片,将TTL/CMOS电平转换成CAN协议的差分电平,就是一个完整的CAN收发节点。最近在做一个小项目,需要基于GD32的芯片来开发CAN应用,在CAN配置上遇到一些问题,遂整理成本文。由于CAN节点的电路的核心就是CAN收发芯片,而且一般可以直接使用芯片数据手册的推荐电路,所以这个电路还是比较简单的,因此硬件设计不在本文讨论范围内。

2024-11-13 22:18:52 1934

原创 【Python】如何设置VSCode中的Pylint,消除各种没有必要的警告

最近打开VSCode,编辑之前创建的Python项目,突然发现多了一堆报错和警告,如下图所示。就非常吓人,因为之前这个项目是没有任何报错的,我赶紧试着运行了一下,还好,可以正常运行,那就说明是检测出了问题,不是代码的问题。一番查找,问题定位到了Pylint上面。

2024-11-13 20:18:14 1889

原创 【Python】基于python实现Windows Service程序

最近揽了一个小活,就是基于Python设计一个Windows Service程序,和一般应用不同的是,Service直接运行在后台,不会在运行时弹出黑框,因此在设计上和一般的程序有些微差别。因为之前从来没有做过这个,因此做个记录。

2024-09-23 22:28:25 828 1

原创 【项目实践】Ulike充电牙刷拆解

用了一段时间的充电牙刷,某一次突然没电了,按键也没有反应。无奈只能废弃。最近略微得了些空闲,想着把它拆解看看里面的结构和电路。以下是鼓捣过程记录。

2024-06-20 18:51:29 908

原创 【Python】PySide6使用入门和注意事项

最近在开发一个带界面的软件,需要使用蓝牙,然后找到一个开源仓库使用的是Qt里面的Qbluetooth模块,并且是基于PySide6开发的。之前实际项目中只用过PyQt5,尝试过PySide2,感觉这两者基本一致,代码上可能只需要改一下导入就行。一开始以为PySide6也差不多,实测确实代码上差异很小(除了import外其他的需要略微修改),但在这个项目中还是感觉PySide6开发更方便。遂简单记录一下。

2024-06-17 17:04:59 1427

原创 【STM32】CubeIDE下载安装使用全记录

作为ST官方主推的集成开发环境(IDE),STM32CubeIDE还是非常好用的,之前一直都是使用Keil开发,甚至HAL库,都是使用Keil开发,但后来发现①图形化界面和代码放到一起真的很方便;②Cube IDE的编辑器比Keil的编辑器好用多了。基于此,果断转向Cube IDE(HAL库)。定位函数的声明和定义是开发过程中十分常用的功能,相比于Keil中需要按快捷键,在STM32CubeIDE中只需要按住Ctrl,再单击鼠标左键即可。如下图所示。

2024-06-14 23:44:43 7267

原创 【STM32】存储器和位带映射(bit band mapping)

最近在研究stm32标准库,对使用宏定义实现位操作的函数非常感兴趣,简单的一句就能实现某个引脚电平的输出,非常有51时代的风格,有一种简洁美,于是在仔细阅读参考手册和数据手册的同时结合网上众说纷纭的文章,希望产出一篇正确且全面的文章。终于知道为什么谈到单片机一般就是存储器和外设,因为这是对芯片应用者来说最基本也是最重要的东西了。希望这篇文章能够让读者对STM32的存储器有一个全面且略深入的认识。

2024-04-06 22:35:18 1789

原创 【项目实践】VS配置Qt

最近因为一个项目,需要使用Qt,本来想使用Python的,但是由于另外一个第三方的库是C++的,所以决定还是使用VS,第一步肯定就是配置环境,以下是操作记录。

2024-03-20 15:49:03 2827

原创 【STM32】Keil RTE使用记录

最近因为任务需要,再次开始研究STM32,打算过一遍之前记录的笔记,在创建工程模板时,突然发现一个之前被自己忽略的东西,那就是创建项目时会弹出的,抱着好奇的心态去找了一些资料,结果发现这貌似也不简单。在新版Keil(UV5)中,新建一个project,选定芯片型号之后,就会自动弹出这个窗口:大多数教程在这里就直接跳过了,但是通过查找资料,我发现这个Run-Time Environment,缩写RTE,实际上是Keil官方针对新版Keil出的一个快速配置项目工程的一个运行时环境。

2024-02-23 16:45:35 2412

原创 【嵌入式工具】Keil插件 改变文件可读属性

在查找和Keil相关的插件过程中,无意间找到一个是基于bat脚本实现改变文件的可读属性的插件,原文链接。之前因为没有需求所以搁置了,最近心血来潮想着可以研究一下。于是仔细阅读了一下它的代码,发现也不是很复杂,于是在原来基础上迭代了一版。

2024-02-23 00:00:04 1441

原创 【软件相关】基于Alist挂载云盘到本地文件资源管理器

因为最近在研究各种云盘存储影视资源的方法,无意间看到一个教程是利用软件将云盘挂载到本地的资源管理器,这样就能实现类似本地文件操作的方式来操作云盘文件,还是有点意思的。

2024-02-18 00:14:16 4367

原创 【PyQt】在PyQt5的界面上集成matplotlib绘制的图像

在上面的前期教程中,介绍了在PyQt5中如何绘制曲线,是使用PyQt5的一些第三方扩展包来实现的,但是提到python中的画图,matplotlib才是最受欢迎的工具,因此,在PyQt5界面中集成一个matplotlib绘制的图非常有用。

2024-02-17 19:56:08 5887

原创 【Tools】VS基本使用

最近因为项目实践,使用VS比较多,在使用过程中遇到并解决了很多问题,因此这里想结合此前记录的一些第三方库配置的文章博客来做一次总结。Note:这里统一以VS2017 pro为参考,其他版本类似。

2024-01-06 13:40:29 1614

原创 【电脑使用】Ubuntu双系统安装总结

Ubuntu、Windows双系统安装流程简要概述,适用于熟悉系统安装的人

2023-10-19 00:23:34 254

原创 【YOLO】拾遗(五)

本文汇总在使用yolo过程中遇到的一些问题,时时更新。

2023-10-19 00:15:50 429 1

原创 【YOLO】语义分割和实例分割(四)

在之前的实践过程中,总结了如何使用YOLOv5进行目标识别,从环境搭建到训练自己的数据集,再到将训练好的模型使用OpenCV部署,这篇文章主要是拓展一下应用领域——语义分割,还是以应用入门为主。

2023-10-19 00:14:46 2725

转载 【Linux】wget和curl的区别

对于初学Linux指令的人来说,经常会在不同场景下遇到使用wget和curl,所以一直想搞清楚这两者有什么区别,网上看到一篇文章感觉总结得很全面,这里转载一下,侵删。

2023-10-18 23:04:35 1107

原创 【Linux】Ubuntu存储分析

因为要编译一个ARM架构的Linux SDK,结果没想到这个SDK解压编译完大小远超我想象,直接超出了当初安装时分配的存储空间大小。然后直接导致我重装了好几次,浪费了不少时间,这里记录一下经验。

2023-10-18 22:54:36 996

基于CD4511的八路抢答器Proteus仿真工程文件

基于CD4511的八路抢答器,结构非常清晰明了,还在原来基础上新增了一路抢答器,相关文章链接:https://blog.youkuaiyun.com/ZHOU_YONG915/article/details/144004006

2024-11-24

STM32CubeIDE自动提示代码

STM32CubeIDE 的代码提示需要按下快捷键才能提示,使用非常不方便,可以将这个文件解压之后放到安装目录下的plugins文件夹替换,实现自动代码提示。经测试使用1.14.0,1.14.1等版本

2024-05-06

VMWare软件清理工具,为卸载重装VMWare软件并且报错“安装程序不支持降级”准备的

VMWare软件清理工具,为卸载重装VMWare软件并且报错“安装程序不支持降级”准备的

2023-07-27

Proteus8.13-ADC-Project

注意:这个项目在我电脑上无法运行!!!!设置为零分,希望有人能看看为什么有这个问题,如果找到问题,希望到该博客下面评论:https://blog.youkuaiyun.com/ZHOU_YONG915/article/details/130359835

2023-04-30

MFC文档中文版,记录MFC中常用的类的定义

MFC文档中文版,记录MFC中常用的类的定义

2022-06-14

74HC595数据手册(含中英文)

内部含有中英文版的手册。有兴趣可以看看这个博客的链接https://blog.youkuaiyun.com/ZHOU_YONG915/article/details/122610085

2022-01-20

74HC165数据手册(中英文)

74HC165数据手册(中英文)

2022-01-20

TCS3200_DS000107_3-00.pdf

TCS3200D是一个颜色识别模块,将颜色转换为频率

2021-08-15

Axmath快捷键(2021.8.8).hks

Axmath的快捷键,可以直接导入,具体设置技巧和说明参见这篇博客:https://blog.youkuaiyun.com/ZHOU_YONG915/article/details/116292490

2021-08-08

希腊字母Latex代码集.pdf

希腊字母的Latex代码合集,掌握之后对公式编辑和写Latex文档有很大帮助

2021-04-30

SR9900 Datasheet.pdf

SR9900 Datasheet.pdf

2021-03-12

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

TA关注的人

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