问题标签 [stm32cubeide]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
stm32 - 如何解决:插入所有硬件断点失败;你可能请求了太多的硬件断点/观察点
我正在使用 STM32 Cube IDE,我经常收到一个错误对话框,上面写着:
我知道我使用的 ARM Cortex M0+ 仅支持 4 个硬件断点,因此会出现错误,但这通常还不够。我该如何解决这个问题,并设置超过 4 个断点?
请注意,我以前使用过 STM8(使用 IAR EWB),这是一个更受限制的 MCU,但我可以使用任意数量的断点。
stm32 - 多次写入外部 eeprom 会损坏以前的数据
我正在AT24C02 external eeprom
使用stm32f401 nucleo
. 我面临几个问题。
让我们考虑一些地址
1. 边写边读。
我能够同时向 eeprom 写入和读取数据。
这段代码工作正常。下面是输出的快照。
2. 写字符串的问题
在上面的代码部分之后,我写了一些行来写字符串和读字符串。正如您在输出缓冲区中看到的那样,dest
包含一些值。
3. 写完所有这些值后,读数显示损坏的数据 在上述代码部分之后,如果我读回我写的所有地址,就会给我损坏的数据。
以下是此代码的 out 快照。
如您所见,所有数据现在都已损坏。
您可以从此链接https://pastebin.com/2vYWYhnw找到 eeprom.c或直接滚动到下方。
差点忘了提到我正在运行 I2C @400Khz。虽然我尝试过 100KHz,但结果相同。下面是 HAL 生成的 I2C 初始化。
现在的问题是为什么会出现这个问题。基本上HAL
应该处理所有情况,我只会向它发送数据。任何帮助将不胜感激。
问候。
printf - STM32F767 Nucleo 板 printf 到控制台
在过去的几天里,我一直试图让 printf 工作以将调试消息打印到 STM32CubeIDE 控制台。然而,没有运气。我经历了许多论坛主题和讨论,但似乎都没有完全解决这个众所周知的奇怪问题。
我刚刚使用 STM32CubeMX 生成了一个全新的项目,并为 Nucleo 板使用了默认配置。我只是使用内置 ST-link 的 USB 电缆对设备进行编程。
到目前为止,我被建议做的是添加几行代码,这些代码显然应该已经解决了这个问题,但它确实做到了:
我还包括:
实际代码:
当我打开终端并连接到设备时,我可以看到消息按预期出现: 在此处输入图像描述
但是,我无法理解为什么我无法在 stm32cubeIDE 控制台上看到显示的消息。我错过了一些额外的配置吗?
stm32 - stm32cubeide 报告固件包丢失
我有一个 STM32 Nucleo F4,我正在尝试在 STMCubeIDE 中创建一个新的 C 项目。
我有 STMCubeIDE 版本 1.5.0 Build: 8698_20201117_1050 (UTC)
在嵌入式软件包管理器中,我安装了“STM32Cube MCU Package for STM32F4 Series”版本 1.25.2
但是,当我创建一个新的 STM32 项目(使用板选择器选择我的板 - NUCLEO-F410RB)时,我收到以下错误消息:
Code generation could not be done most probably because the necessary firmware package is missing. Not able to complete STM32Cube project creation. See Firmware Updater for settings related to firmware package installation Tips: Please use the Device Configuration Tool, and then use 'Project > Generate Code' to complete the project generation.
如果我调用“项目 > 生成代码”,它似乎完成了,但大多数项目文件都丢失了,这意味着“生成代码”在某个阶段默默地失败了。
有没有人有任何想法?
c - 为什么 FreeRTOS 在 osKernelStart 声明后执行“main's”代码?代码调试
检查这个答案让我得出一个结论,即我可能在 FreeRTOS 处理方面做错了什么。这就是 SWV 控制台的外观
它自己的代码几乎是由 CubeMX 新生成的,在处理任务(它包含无限循环)方面没有任何明显的变化,osDelays 等于一秒。
- 它不应该再进入主函数吗?
- 可能是什么问题?
c++ - 用于 stm32cube IDE 的 TLC5940 软件库
我是比利时 KU-Leuven 大学的学生,在一个项目中,我使用 3 个 TLC5940 来驱动 16x16 RGB Led 矩阵。我想用STM32CUBE IDE来写软件。现在因为我的软件技能不是最好的,所以我搜索了一个现有的库。我找到了一个在 Mbed 编译器 ( https://os.mbed.com/users/Spencer/code/TLC5940/ ) 上工作的库,以便在 STM32CUBE IDE 中使用它,有很多东西需要翻译才能工作。有没有一种简单的翻译方法,或者这个库是否有可能用于 stm32cube IDE?亲切的问候罗兰·奥萨
c++ - 在 for 循环中初始化的变量包含一个值,不会递增
我正在为 STM32 微控制器开发一个功能,该功能通过 uart 端口发送给定长度的字符串。为了处理 uart 通信,我创建了一个 Serial 类,该类具有一个在中断处理程序中弹出和传输的传输和接收缓冲区。我目前正在处理的函数实际上是我之前编写的有效函数的重载。下面是工作函数:
}
重载是我遇到问题的功能。出于某种原因,调试器显示变量“i”以值“14”初始化,并且在使用调试器单步执行时不会递增。事实上,调试器根本不允许我进入 for 循环。这是重载:
}
这些函数在 main 中的终端 while 循环中调用。调试时,问题立即发生;我根本无法承受超载。我的代码似乎只是在这个位置停止了。
我之前已经能够成功运行过载。仅当我试图解决函数中的另一个错误时,该错误才出现,即字符串中的第一个字符仅在一半时间内被传输。我设置了一个断点并开始调试,现在它根本不起作用......
stm32cubeide - TouchGFX:如何处理按下/未按下按钮的指令
如何处理 TouchGFX 中的一个按钮,该按钮允许我在按下 LED 时打开它,并在我释放按钮时将其关闭?以下代码有效,但每次触摸/取消触摸屏幕时都会打开/关闭 LED...
如果我使用“flexButtonCallbackHandler(const touchgfx::AbstractButtonContainer& event)”函数,我可以检测到 button1、button2 等是否被按下,但我无法检测到按钮是否被释放......有什么建议吗?
c - 如何使用 sprintf 显示 64 位无符号整数?
我在腻子控制台上显示 32 位计时器值。计时器包括自我的 stm32wb55 启动以来的微秒时间。使用以下代码,它可以像我想要的那样工作:
uint32_t time_micro32
但现在,我想以 64 位分辨率显示时间uint64_t time_micro64
。我尝试了很多,但没有任何效果。有人可以帮我吗?我在 STM32CubeIDE 中编程
stm32 - 难以为闪存配置 FatFs
我只是一个卑微的实习生,被扔进了固件开发的无情之火中。我的任务是通过 SPI 使用 w25qxx 在 STM32 芯片上实现文件系统。我已经能够通过 SPI 成功读取和写入 w25q,并创建了一个类来处理芯片的基本 i/o。
我决定使用 FatFS,因为它部分内置于 STM32CubeID 中,而且它似乎最适合我们的需求。我见过很多人通过 SD 卡实现 FatFS,但是 SD 卡会比我们需要的更复杂。在我看到的所有教程中,您需要编辑user_diskio.c的方法以与您使用的存储保持一致。但是,当我这样做时,我发现我的代码实际上从未使用user_diskio.c,也没有使用diskio.c。我在其中设置了一行代码来设置一个 LED 来判断程序是否真的到达了代码中的这些点,但似乎没有。
来自我的user_diskio.cpp的方法
在我的main.cpp中,我试图创建一个文件,向其中写入一个字符串,关闭它,然后再次打开它以读取字符串。
fresult
FR_NOT_ENABLED
当我打开文件时返回,FR_INVALID_OBJECT
当我关闭时返回。尝试将文件读入缓冲区会导致缓冲区中的第一个字节被读取为空字符。我应该添加任何其他信息吗?