自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (2)
  • 收藏
  • 关注

原创 显式启用-u_printf_float和-u_scanf_float前后的代码内存体积实验

编译出的代码内存体积为23440B+464B=23904B。,编译出的代码内存体积为15252B+464B=15716B。,编译出的代码内存体积为18556B+464B=19020B。,编译出的代码内存体积为1108B+8B=1116B。可以得到明显的结论:显式启用。本文的嵌入式编译器基于。

2025-01-06 18:41:34 338

原创 嵌入式领域的资源/文章/问题寻找网站

博客类:社区类:论坛类:others:

2024-12-30 15:52:30 217

原创 在【Arduino IDE】中在线下载和离线下载【ESP系列开发板的SDK】

INFO:离线安装的【开发板管理SDK包】不是最新的,只要Arduino IDE联网,就会在线检测【开发板管理SDK包】是否为最新版本,点击。②双击Espxx安装包即可自动索引下载到Arduino安装目录,速度比在线下载快了不是一丁半点。可以看到,开发板管理器中已经包含了esp32开发板SDK包,至此安装成功。在线下载的过程并没有想象中的那么顺利,下载速度过于感人!③重新启动Arduino IDE,会跳出如下窗口,我们点击“之后”。:开发板管理SDK包放在了境外的服务器上,因此下载和访问会缓慢。

2024-12-20 17:30:56 901

原创 VSCode+arm-none-eabi-gcc交叉编译+CMake构建+OpenOCD(基于STM32的标准库/HAL库)

arm-none-eabi-gcc工具链发布时自带有2个基于newlib的预构建C库:一个是标准的newlib,另一个是newlib-nano(优化了代码大小)】单片机作为示例来进行演示,以下配置文件对于标准库/HAL库的工程是通用的,修改CMakeLists.txt里面的源文件和头文件引用部分即可。文件移植到自己的标准库 / HAL库工程后,需要重新生成CMake和当前项目相关的配置,否则会报错。在编译时,如果-specs=nano.specs被传递给编译器,那么一个专门为newlib-nano配置的。

2024-12-17 18:48:53 1306

原创 解决VSCode无法识别相对路径的问题

近日在学习python文件操作时,发现使用VSCode作为编辑器时,文件的相对路径会出问题,报错“指定路径下找不到文件”,无法找到想要的文件。上述两者效果是一致的,VSCode有UI和json文本两者形式设置,任选一种即可,笔者推荐json文本形式设置。修改原理:因为此时相对路径的【参照位置】,是打开的“工程项目文件夹”,不是源代码文件目录所在位置。在基于以上的情况下,出现了相对路径报错的问题。修改原理:此时相对路径的【参照位置】,是“当前源代码的文件目录”。为示例,此时相对路径的【参照位置】是。

2024-12-12 17:42:45 1382 1

原创 嵌入式编译流程

.elf 格式更加先进,支持的功能更多,但是在某些系统上仍然使用 .out 格式。

2024-12-11 14:36:01 149

原创 makefile脚本需要修改的地方

嵌入式领域中,在正式发行代码版本时,会严格区分Release和Debug版本,Debug版本用于开发人员内部开发调试所用的代码版本;Release版本面向外部的市场客户,此时的代码往往就会设置代码优化等级,目的是为了将MCU资源利用最大化和优化客户体验(修改为你工程目录中需要参与编译的启动文件路径。修改为你工程目录中需要参与编译的源文件路径。修改为你工程目录中参与链接的链接脚本路径。修改为你工程目录中需要参与编译的头文件路径。派生而来,对makefile脚本需要修改的地方作补充说明。

2024-12-05 16:51:39 261

原创 .vscode文件夹中各个JSON脚本需要修改的地方

NOTE:此篇文章由衍生而来,对.vscode文件中各个脚本需要修改的地方作补充说明。

2024-12-05 16:34:48 494

原创 OpenOCD之J-Link下载

1.下载USB Dirver Tool.exe,选择J-Link dirver,替换成WinUSB驱动。(⭐USB Dirver Tool工具可将J-Link从WinUSB驱动恢复为默认驱动⭐)同理 将launch.json中的J-link调试段的 interface 处后面的接口文件名修改成上述的。5.将task.json中的 -f interface处后面的接口文件名修改成上述的。6.点击Download——>选择J-link下载,即可下载。4.在jlink-swd.cfg文件的。

2024-11-24 19:43:58 584

转载 《提问的智慧》

提问的智慧

2024-11-18 14:09:45 118

原创 OpenOCD之flash write_image和program命令

OpenOCD监听端口的各功能:OpenOCD配置完成并正确连接上开发板后,就会监听6666,4444,3333端口,分别用于tcl, telnet,gdb-server。

2024-11-05 16:42:02 1121

原创 基于VSCode搭建开源嵌入式环境的make构建工具选择

大家可以自行选择使用上述两个make工具中的任意一个,笔者比较推荐xpack-windows-build-tools,xpack-windows-build-tools是开源作者从Linux移植到Windows上的构建工具包。

2024-10-19 10:48:12 576

原创 解决VSCode文件的中文GBK和UTF-8编码之间乱码问题

INFO:近日笔者在使用VSCode编码环境的时候,出现了中文和UTF-8两者之间乱码的问题,特编写本片文章,以作学习记录。

2024-09-16 17:28:23 2288 1

原创 常用的代码注释标签

表示代码可能包含临时解决方案、糟糕的实践、或者有待优化的部分,通常意味着此处的实现方式并不理想,应在未来重新审视和改进。- 标记一段临时性的、非常规的解决方案,通常用于应对紧急问题,但长期来看不是最优解。- 请求他人复查某段代码,可能是为了确认设计决策、逻辑是否正确或改进代码质量。- 标记已弃用的代码,提醒开发者这段代码未来可能会被移除。- 添加一些说明文字,提供一些重要提示或背景信息。- 指出代码中存在问题或bug,需要修复的地方。- 标记正在进行的工作,表明这部分代码尚未完成。

2024-09-11 20:34:04 302

原创 变量/函数命名规则

①小驼峰命名,首单词首字母小写+后面每个单词首字母大写,举例:printEmployeePaychecks();firstName;②大驼峰命名(帕斯卡命名法),每个单词首字母大写,举例:PrintEmployeePaychecks();FirstName;二、下划线法(蛇形命名法),所有单词皆小写,以下划线分隔:print_employee_paychecks();写这篇文章,提醒自己总是记不住如何命名变量和函数。一、驼峰命名法:分小驼峰命名和大驼峰命名。

2024-09-05 10:11:27 285

原创 基于VSCode和MinGW—开发C/C++的环境部署

下面4个文件几乎都是==开箱即用==,只需要修改少许内容,你可以用于替换掉自己工程下的.vscode文件夹中的4个文件。适用于工程含有==单个.c文件==或==多个.c文件==的情况,需要修改的地方笔者会加以说明。

2024-08-28 16:29:24 740

原创 谈谈SVN服务器的远程部署(内网和外网之间穿透访问)

上述2种方式都需要一定的付费才能体验到更好的服务。想折腾,选择内网穿透;想一步到位,选择SVN服务托管平台。我个人还是建议去学习内网穿透,折腾起来还是很有意思的。

2024-08-22 15:37:06 856

原创 内网穿透原理及其客户端

一般而言,内网中的多台主机在没有固定公网IP的情况下,NAT(网络地址转换技术)使得内网中的主机可以共享一个公网 IP 地址访问外部网络,这样就可以令IPv4公网地址利用最大化,但反过来,外网主机通常无法直接访问内网主机。同一个内网下的各个主机是可以直接通过内网IP互相访问的,举个例子:相信大家自己在网上买过路由器安装的人,给路由器连接上网线后,说明书会给1个内网的静态IP地址我们登陆,此时我们使用手机输入这个IP地址,便可跳转到路由器的设置界面去设置密码,加密方式等等,这就是经典的内网中主机访问。

2024-08-13 17:23:33 506

原创 解决VSCode开发Python,终端输出中文乱码的问题

至此Windows下的Python环境编码方式和VSCode的文件编码方式统一成了UTF-8,而VSCode的内置终端编码方式固定是UTF-8,是无法修改的,在上面的2.乱码根因中笔者已经指出来过了,此时我们在VSCode中编译运行Python代码,在VSCode内置终端输出中文就正常了。

2024-08-07 22:38:31 1862 4

原创 解决VSCode终端输出和PyCharm终端输出显示不一致的问题

最近在学一个python进度条程序的时候,发现VSCode的虚拟终端和PyCharm的终端输出不太一样。在不使用code runner插件,而使用虚拟终端输出后,怎么运行和停止代码呢?2)如果不想卸载code-runner插件的话,仍想将。下面的选项,令VSCode运行Python的程序结果在。将鼠标光标移动至虚拟终端窗口,任意点击一下。,这样VSCode就可以将代码的运行结果。1)将code-runner插件。

2024-08-07 10:54:43 442

原创 芯片架构及对应指令集—思维导图

Linux发行版OS(例如Ubuntu操作系统)的构成:Linux内核(管理系统资源、抽象地访问硬件等)+GNU组件(例如GCC/GDB/glibc/coreutils/binutils等等)+APP层(终端Bash、浏览器、应用软件等等桌面环境)可由开发者自由裁剪,用以适配不同的芯片架构,这也就是为什么当我们去下载诸多Linux发行版时,总能看到不同后缀(x86_64/arm/aarch64等等)的iso镜像版本。APP 层需要适配 OS 内核,同理,OS 内核也要适配芯片硬件架构。

2024-08-05 20:28:12 278

原创 开源好用的国产轻量文本编辑器 — notepad--

Notepad-- 是一款免费、开源的文本编辑器,专为程序员和开发人员设计。它支持多种编程语言,并提供了丰富的功能来提高代码编辑的效率。使用GPL 3.0开源协议。

2024-07-26 21:53:19 1268

原创 VSCode如何在项目工程中,使用全局搜索和局部搜索功能?

在keil5 IDE中,我们非常熟悉地按下ctrl+F快捷键,可实现全局搜索/局部搜索某个变量和函数。那么在VSCode中,怎么实现全局搜索/局部搜索呢?全局搜索:点击VSCode的右边的放大镜。局部搜索:也是快捷键ctrl+F。

2024-07-26 20:13:43 2919

原创 ARM Cortex-M系列内核的编译信息内存分布——思维导图

RW-data是已初始化的可读可写变量;ZI-data是未初始化的可读可写变量。Code就是代码占用大小;RO-data是只读常量;

2024-07-24 22:31:19 141

原创 记录解决ESP32-C3软件环境搭建和能识别串口但下载不进程序的问题(VSCode+乐鑫官方ESP-IDF插件)

1. 如果VSCode下载ESP-IDF插件出现失败,卸载ESP-IDF插件和ESP-IDF曾经下载的资源包,然后电脑断开网线,连接==WIFI==重新下载即可。2. 如果出现串口无法下载程序的情况,卸载CH340X的2个驱动,再次安装,重启电脑,COM口选择出现ESP32-C3(QFN32)(revision v0.3)就可以了。

2024-07-23 19:07:34 1556

原创 VSCode+arm-none-eabi-gcc交叉编译+Makefile构建+OpenOCD(基于STM32的标准库)

对于嵌入式开发人员,想必最熟悉在Keil MDK或者IAR的IDE下的程序开发了。Keil MDK的调试和仿真功能是其他IDE所不能比拟的,在公司内部的项目合作开发方面,兼容性也是非常优秀;至于IAR IDE,笔者没用过。本文旨在搭建一套基于VSCode的嵌入式开发环境,了解从编译到调试的过程。📚NOTE:该框架存在的目的是让人们不再重复造轮子!诸如clangcmakeOpenOCDGNU sedQEMU Arm等第三方工具资源都整合在xPack项目,

2024-07-20 17:48:15 3034 7

原创 基于C语言的滑动平均滤波算法

【代码】基于C语言的滑动平均滤波算法。

2024-07-10 17:36:54 568

原创 STM32-HAL库的EXTI外部中断不能使用HAL_Delay( )函数的问题剖析

在上一篇文章中,我们讲到了使用外部中断不能退出的原因,这次我们来说另外一个原因:在外部中断中使用HAL_Delay()函数会进入死循环。我看网上很多大佬说,把系统滴答定时器的优先级调高或者自定义1个延时函数替代HAL_Delay(),我个人更偏向于后者。例如下述实例,在中断回调服务函数里调用HAL_Delay(),会导致卡死,无法外部按键触发中断。低优先级(发生了中断嵌套),导致系统滴答定时器不执行,无法进行滴答定时,上述的。, 意为:当系统滴答定时时间小于等待预设时间,则循环,否则退出。

2024-07-09 12:06:05 533

原创 什么是服务器?有什么用?

答:服务器是一种高性能的电脑主机,处于全年无停的开机状态,如今我们在手机/电脑/平板等设备浏览世界各地的网页,视频,音乐,邮箱,游戏等等实时在线的信息时,它充当着核心角色。答:是各大厂商在全国/乃至世界各地部署的物理服务器映射出来的(可以抽象地理解为:一台服务器开了多台虚拟机,你购买便可使用其中一台虚拟机),可通过你的个人电脑终端远程登录到。答:既然服务器是电脑主机,那我们的个人PC可以搭建服务器吗?等搭建专属于个人的服务器,搭建了之后呢?,相当于你花钱购买了搭建服务器硬件的需求,这样就可以使用他们的。

2024-07-07 22:52:26 280

原创 STM32-HAL库调试外部中断EXTI的问题剖析

STM32_HAL库调试外部中断EXTI的问题

2024-07-07 15:47:29 1140

原创 基于arm-none-eabi-gcc编译工具链的串口重定向printf

VSCode基于arm-none-eabi-gcc交叉编译工具链的串口重定向printf输出和Keil MDK基于armcc工具链的串口重定向printf输出是不一样的,我按照以下链接①配置GCC的printf输出,以上解决了MCU—>电脑串口接收的问题,电脑串口—>MCU的发送问题还得需要拓展一下,可参考链接②。

2024-07-06 19:47:28 1022 1

原创 VSCode+arm-none-eabi-gcc交叉编译+Makefile构建+OpenOCD(基于STM32的HAL库)

相对路径好了,到这里就解决了报错未定义库函数的问题,其实这和keil的引入源文件和包含头文件路径的思路一样,只是以前习惯了keil的UI界面包含方式,换成Makefile方式包含,终究是有点不习惯,后面有时间还是好好学习一下Makefile的语法规则吧(立个flag!最后还是要重申一遍!!!!!注意,在Makefile中,源文件是引入到具体的.c文件,头文件是包含其相对路径。

2024-07-06 13:21:25 769

原创 ARMCC、ARMCLANG、arm-none-eabi-gcc这3个嵌入式交叉编译工具链有什么区别?

不可否认的是,arm-none-eabi-gcc编译器相比于keil的AC5、AC6编译器,所编译出的hex文件占用flash稍微大一点。细心的你应该发现了,打开keil uvision的“俄罗斯方块”—>Folders/Extensions,其实可以选择性地使用以上的工具链,如下图所示。② ARMCLANG同样是ARM公司开发的一套基于MDK的6代嵌入式工具链,是基于苹果公司LLVM框架的嵌入式工具链,可独立下载。的内容也会越来越多,这个时候,又有聪明的程序员大佬想到了,能不能自动生成。

2024-07-05 12:08:28 2660

原创 两款VSCode编码主题:Moonlight Night 和 Dracula Theme Official

“workbench.colorTheme” 是我们需要设置的Dracula主题。

2024-07-05 10:28:44 423

原创 (真实有效)解决使用VSCode打开STM32工程,头文件出现红色波浪线问题(基于Keil Assistant插件)

不要在KEIL UVISION PROJECT的工作区直接打开整个keil工程,使用vscode的文件夹方式打开xxxx.uvprojx所在的文件夹。

2024-07-04 00:10:34 2232 1

原创 同相放大器和反相放大器的区别

反相放大器输出的是负值,需要再用一个放大系数为1的反相放大器输出正值,你要问为什么?请看图。根据公式,同相放大器即便是R1为零,它的放大倍数也是1;反相放大器就不同了,放大倍数可以小于1,只不过是负的。假如R1/R2=10K/100K=-0.1倍,再用一个放大系数为1反相放大器就成了正0.1倍,楼主的需要就可以实现了。...

2021-11-15 09:46:30 9166

原创 运放选型注意事项

运放选型参数:1.压摆率2.输入失调电压:在差分放大器的两个输入端加有相等的输入电压时,差分输出电压称为输出失调电压。(输出端为0时,2个输入端之间的补偿电压,即差值或者2个输入端的电压相同时,输出端的电压),毫伏级信号放大选择uA级别失调电压运放3.失调电流4.驱运放选型参数:压摆率输入失调电压:在差分放大器的两个输入端加有相等的输入电压时,差分输出电压称为输出失调电压。(输出端为0时,2个输入端之间的补偿电压,即差值或者2个输入端的电压相同时,输出端的电压),毫伏级信号放大选择u

2021-11-15 00:43:23 1469

syscalls.c-STM32的系统调用源文件

GCC编译器用于串口打印printf的重定向

2024-12-06

keil 4和keil 5的版本兼容支持包

keil 4和keil 5的版本兼容支持包

2024-10-19

everything.exe(单文件-绿色免安装版)

everything.exe(单文件-绿色免安装版)

2024-10-19

UsbDriverTool-2.1.exe,用于OpenOCD下替换J-Link驱动并恢复原来的J-Link驱动

UsbDriverTool-2.1.exe,用于OpenOCD下替换J-Link驱动并恢复原来的J-Link驱动

2024-10-19

sed安装包:sed-4.2.1-setup.exe

默认安装即可,会生成GnuWin32文件夹

2024-09-03

MinGW安装包:分离线免安装版和在线安装版,建议使用离线免安装版

离线安装版的安装方式:将其解压,放在一个软件常安装的地方,设置MinGW中的bin文件夹为系统环境变量。 如果您不是很看得懂,请移步该CSDN博客链接:https://blog.csdn.net/ZZLLLLLLZ/article/details/140530074

2024-09-03

基于STM32F103的HC-05蓝牙串口点灯程序.zip

使用手机App发送指令,对单片机进行开关灯操作,后续会将单片机的数据进行上传。

2021-08-04

基于STM32的HC-SR04超声波测距的例程.zip

使用STM32F103单片机测量超声波距离

2021-08-04

空空如也

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

TA关注的人

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