stm32 cube ide 无法使用 盗版 stlink

需求 stm32 cube ide 使用淘宝 ¥10+ 的 stlink,提示出错。 解决 这个是 st 自身的验证,只能换成 mdk,才能用了,而且 mdk 也会有弹窗,但是能讲究着用。 参考 STM32CubeIDE使用笔记(03):使用ST-LINK调试程序

2024-09-14 · 1 min · 17 words · RamLife

stm32 cube ide 无法配置外部时钟

需求 stm32 cube ide 配置完成引脚后,发现时钟有问题,无法配置外部时钟 解决 这个其实是伴随着 sys 之类的无法选择外部时钟,无法选择 swd 等。 这个其实是软件 bug,把软件重启一下,就可以设置了。 参考 STM32CubeMX配置时钟无法使用高速外部时钟HSE

2024-09-14 · 1 min · 15 words · RamLife

stm32 cube ide mcu package 安装 patch

需求 如何给 stm32 cube ide 的 mcu package 安装 patch? 解决 直接安装 patch 的时候,会提示,没有找到 stm32cube_fw_f1_v180.zip ,但是实际上,我们已经安装了 v1.8.0 的 package. 但是解决也很简单,把原来安装的 v1.8.0 的 package 的 zip 压缩包,复制到默认的 C:\Users\Administrator\STM32Cube\Repository 这个仓库里面,并且把名字从 STM32Cube_FW_F1_V1.8.0.zip 修改为 stm32cube_fw_f1_v180.zip, 然后再进行 patch 安装即可。 参考 How do I install STM32Cube MCU Package for STM32F4 Series 1.27.1 without an internet connection? How to install a patch offline in the STM32Cube IDE? STM32 CubeMx本地安装库并打补丁(patch安装)

2024-09-14 · 1 min · 62 words · RamLife

vscode 增加 snippet

需求 vscode vue 中增加 code snippet,方便使用。 解决 插件 在 vscode 中,插件里面搜索 vue 3 snippets, 然后安装即可。 添加 snippet 点击左下设置按钮,选择 user snippets 输入文件名, 比如 vue.json.code-snippets 输入 snippet, 比如: { // Place your vue_electron_qianfeng workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and // description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope // is left empty or omitted, the snippet gets applied to all languages....

2024-09-03 · 2 min · 235 words · RamLife

stm32 cube ide 编译提示 undefined reference to

需求 编译的时候,提示 undefined reference to 解决 这种问题经常会碰到,一般就是相关源文件没有在编译列表里面,结果经过仔细查找,都添加进去了。后来经过仔细查找,发现原来是 c++ 和 c 混合编译的问题,在 c++ 中文件里面调用的函数,其所在的头文件没有使用 extern "C" 包含,导致的。想要修改也很简单,不需要改动头文件,只需要在 c++ 文件中这样: #include "gx_api.h" extern "C" { #include "gx_display.h" } 而且其实在 map 文件中是有相关线索的,下面分别是没有用 extern 包含,和用了 extern 包含的 map 文件中的函数信息。可以明显看到有 extern 包含的,有相关地址。 .text._gx_display_driver_565rgb_setup 0x0000000000000000 0x260 ./guix/common/src/gx_display_driver_565rgb_setup.o .text._gx_display_driver_565rgb_setup 0x000000000801e6e8 0x260 ./guix/common/src/gx_display_driver_565rgb_setup.o 0x000000000801e6e8 _gx_display_driver_565rgb_setup 参考 gcc “undefined reference to” 问题解决方法

2023-11-17 · 1 min · 53 words · RamLife

stm32 cube ide 寄存器变量监控

需求 调试的时候,有时候会比较在意某个寄存器到底是什么时候被修改? 解决 这个其实可以参照 eclipse 正常的变量监控的方法去做。 找到寄存器对应的结构体变量,比如说我需要监视 uart1 的 TCIE 在 DMA 发送的时候,是什么时候被置位的。我就可以先找到 uart1 对应的结构体变量 huart1. 添加变量监控。 在 右侧的 expressions 中添加 huart1 添加断点。 在 huart1 -> instance -> CR1 上面右键,点击 add watch point 就可以新增一个监视这个寄存器的断点了。 参考 Eclipse开启变量监控 STM32CubeIDE查看变量 STM32 CubeIDE 仿真时怎样把变量添加到监视窗口。 记一次STM32中HardFault问题的调试解决(INVPC, LR 0xFFFFFFF5) STM32CubeIDE使用总结(三)——debug调试程序 关于STM32CubeIDE环境下的变量显示及监测 用Keil仿真调试查看变量内存地址被篡改的方法 keil debug时用断点管理抓取变量变化 eclipse中debug改变变量的值

2023-10-25 · 1 min · 49 words · RamLife

mdk compiler version 5

需求 新版本的 mdk 默认安装 v6 编译器,旧工程依赖 v5 编译器无法编译,需要解决。 解决 下载 v5 编译器 官网基本很难下载 第三方 csdn 下载 网盘 https://pan.baidu.com/s/1EgzGFCL7VflL9r6iJNj0sQ?pwd=5rhc 安装 安装可以和 mdk 安装到一起去,也可以安装到其他地方。 配置 点击魔棒右边的 file extensions. folder 标签 -> use arm compiler 右边的 … add compiler 选择你上一步安装的位置 close 使用 点击魔棒 target 标签 -> arm compiler 下拉,选择 v5.06… 参考 《 Arm Compiler 5.06 》__ARM编译器官网下载、安装和使用说明(小白也能懂) Keil5遇到:*** Target ‘xxx‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available. KEIL MDK5.37版本自行添加AC5(ARMCC)编译器

2023-10-23 · 1 min · 68 words · RamLife

QT pri 文件,让工程更加模块化

需求 qtcreator 工程一但文件多了以后,看着就很乱。 解决 使用 pri 文件即可,这个文件相当于管理一个子文件夹的文件。 编写 pri 比如说,我需要在主源码目录下面新建一个 eventdispatcher_libev 这个子文件夹,并且使用 pri 进行管理。 HEADERS += \ $$PWD/eventdispatcher_libev.h \ $$PWD/eventdispatcher_libev_p.h \ $$PWD/qt4compat.h SOURCES += \ $$PWD/eventdispatcher_libev.cpp \ $$PWD/eventdispatcher_libev_p.cpp \ $$PWD/timers_p.cpp \ $$PWD/socknot_p.cpp LIBS += -lev 修改 pro 需要在 pro 文件中,包含相应的 pri 文件,只要没有问题,那么会自动把 pri 文件中注明的源文件给导入到项目文件列表中,不需要手动去添加已有文件。 INCLUDEPATH += $$PWD/eventdispatcher_libev # 工程编译时,会去INCLUDEPATH列表下的目录搜索头文件 unix:include($$PWD/eventdispatcher_libev/eventdispatcher_libev.pri) 如果是和系统相关的,比如说上面这个要求是 unix 类的系统,那么就需要增加 unix: ,否则不需要这个标注。 参考 Qt使用.pri模块化工程 在Qt项目中添加pri文件 Qt中pri文件介绍及使用(图文超级简单!!)

2023-07-21 · 1 min · 59 words · RamLife

Android Studio 如何单元测试

需求 编写注册资料中,需要写关于单元测试相关的资料,所以需要使用 android studio 来进行单元测试. 解决 android 单元测试分为两种: 本地测试,在 test 文件夹,只涉及 java 本身,可以用 jvm 来进行测试的。 仪器测试,在 androidTest 文件夹,涉及到 android 框架,或者其他特殊情况等等。 本地测试 本地测试很简单,在源码中需要测试的方法上,右键 -> generate -> test,就可以弹出创建 test 的窗口,根据自己需要进行勾选,然后点击 ok 即可。如果已经存在测试代码文件了,还会提示你更新。 在测试代码中,主要依靠各种 assert 来判断是否满足条件,满足就通过,不满足就不通过。还有建议使用 import org.junit.Test; 而不是 import junit.framework.TestCase; assertTrue assertFalse assertEquals 注意在比较浮点数时,最好使用带 delta 参数的方法。 assertNotNull assertNull assertSame 判断是否是同一个引用 assertNotSame 在测试代码的方法或者类左侧有 run 的图标,点击可以选择是否在测试的时候计算覆盖率。 另外,setUp 可以用来做测试前的准备,tearDown 可以用来做测试后的首尾。 仪器测试 参考 编写你的第一个 Android 单元测试 Android 单元测试,从小白到入门开始 在AndroidStudio中使用单元测试 Android 单元测试只看这一篇就够了 构建有效的单元测试 构建插桩单元测试 构建本地单元测试 在 Android Studio 中测试...

2023-06-03 · 1 min · 83 words · RamLife

stm32 cube ide 打印开启浮点数支持

需求 在使用 stm32 cube ide 开发的时候,调试时希望使用 sprintf, printf 等 通过 %f 打印浮点数,需要开启 ide 相关支持. 解决 开启 浮点数支持, =project –> properties –> c/c++ build –> setting –> tools setting –> mcu setting –> use float with printf from newlib-nano(-u_printf_float)= 参考 C语言用printf读取和输出double类型

2023-05-24 · 1 min · 40 words · RamLife