stm32 cube ide 无法使用 盗版 stlink
需求 stm32 cube ide 使用淘宝 ¥10+ 的 stlink,提示出错。 解决 这个是 st 自身的验证,只能换成 mdk,才能用了,而且 mdk 也会有弹窗,但是能讲究着用。 参考 STM32CubeIDE使用笔记(03):使用ST-LINK调试程序
需求 stm32 cube ide 使用淘宝 ¥10+ 的 stlink,提示出错。 解决 这个是 st 自身的验证,只能换成 mdk,才能用了,而且 mdk 也会有弹窗,但是能讲究着用。 参考 STM32CubeIDE使用笔记(03):使用ST-LINK调试程序
需求 stm32 cube ide 配置完成引脚后,发现时钟有问题,无法配置外部时钟 解决 这个其实是伴随着 sys 之类的无法选择外部时钟,无法选择 swd 等。 这个其实是软件 bug,把软件重启一下,就可以设置了。 参考 STM32CubeMX配置时钟无法使用高速外部时钟HSE
需求 如何给 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安装)
需求 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....
需求 编译的时候,提示 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” 问题解决方法
需求 调试的时候,有时候会比较在意某个寄存器到底是什么时候被修改? 解决 这个其实可以参照 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改变变量的值
需求 新版本的 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)编译器
需求 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文件介绍及使用(图文超级简单!!)
需求 编写注册资料中,需要写关于单元测试相关的资料,所以需要使用 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 中测试...
需求 在使用 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类型