问题标签 [stm32cubemx]

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.

0 投票
2 回答
539 浏览

stm32 - STM32F7 SPI 中断停止与 FreeRTOS 一起工作

我正在通过 SPI 通信使用 stm33F7 读取传感器,它在仅从机接收模式下工作,我可以在没有操作系统的情况下完美地在中断模式下读取数据,但是当我在随机时间中断停止触发后启用 FreeRTOS(使用 STM32CUBE)时。我还通过 UART 通信从另一个传感器读取数据,有无操作系统,在两种模式下都可以正常工作,使用 SPI 中断和 FreeRTOS 有什么问题吗?

0 投票
0 回答
91 浏览

c - 为什么第一次调用 va_arg 函数得到一个奇怪的数字?

我正在为我的 STM32 开发板基于 STM32F412RET6 处理器和 STM32CubeIde 和 FREERTOS 的固件。当我第一次调用库的va_arg函数时, stdarg.h给我一个奇怪的号码。为什么?

编码:

调试结果:

在此处输入图像描述

0 投票
1 回答
154 浏览

c - BMA253 加速度计芯片 ID 接收错误

我正在使用 4 线 SPI 将 BMA253 加速度计与 STM32 探索板连接。我正在使用 CUBEMX HAL 库。作为第一步,我试图从传感器寄存器 0x​​00 中读取芯片 ID。应该读取的芯片是 0xFA。在while循环中添加以下代码只是为了验证。由于 SPI 是低电平有效协议,我已将 PIN_2 默认配置为高电平。

由于它处于无限 while 循环中,因此对于前两个循环周期,我在结果中得到 0xFF。然后在接下来的两个循环周期中,我得到了正确的芯片 ID,即 0xFA。然后我在接下来的两个循环周期中得到 0xFF,并且这种模式是无限交替的。

我无法理解为什么我先收到 0xFF 然后再收到 0xFA。

延迟不匹配会不会有问题?我觉得100ms应该没问题。

我也觉得 SPI Receive 的实现不正确。我很担心,因为 SPI Read 是检索加速度数据的重要功能,所以这个功能是关键。

我要求任何人请建议我如何使其完美运行。任何帮助将不胜感激。

提前致谢。

编辑:现在工作 1. 按照 theSealion 的建议将第一位设置为高。2. 此外,我必须根据传感器要求将 SPI 配置中的 CPOL 和 CPHA 配置为模式 0 或模式 3。

0 投票
1 回答
386 浏览

stm32 - 在 STM32CubeIDE 中更改自定义 HID 的属性/生成代码的正确方法是什么

我正在尝试使用STM32F103C8创建自定义 HID 设备,我选择的 IDE 是 STM32CubeIDE,我关注的 教程位于 ST youtube 官方频道。

ST提供了很棒的工具“设备配置工具”,我可以在其中配置微控制器,并且会生成很多基于我​​的配置的代码。该生成的代码具有“用户代码部分”,用户可以在其中创建他的逻辑,如果他需要重新配置微控制器,“设备配置工具”将不会删除该部分代码。

问题:要配置自定义 USB HID,我需要在没有用户代码的地方更改由“设备配置工具”生成的代码,如果我再次运行“设备配置工具”,这些更改将被删除。我只能在“设备配置工具”中设置的字段是: 在此处输入图像描述

但这还不够,我还需要更改 CUSTOM_HID_EPIN_SIZE 和 CUSTOM_HID_EPOUT_SIZE 定义表示设备和主机一次相互发送的字节数,如果我更改“数据包”的大小,我将需要更改默认生成的回调接收该数据并使用它的函数,例如该工具生成如下代码:

但我需要指向“Report_buf”的指针,而不是它的副本,以便s first 2 elements, and the default generated code pass only copy of 2 first bytes, and i can在“设备配置工具”中更改它。

我目前的解决方案:实际上我解决了这个问题,但我认为我没有以正确的方式解决它并且它有效。我已经更改了此处的模板文件“STM32CubeIDE_1.3.0\STM32CubeIDE\plugins\com.st.stm32cube.common.mx_5.6.0.202002181639\db\templates”并且还更改了“STM32CubeIDE_1.3.0\en.stm32cubef1. zip_expanded\STM32Cube_FW_F1_V1.8.0\Middlewares\ST\STM32_USB_Device_Library\Class\HID"

我认为这不是正确的做法,有人知道做这件事的正确方法吗?

我在这里的 ST 论坛上也发现了同样的问题,但没有解决。

0 投票
4 回答
11722 浏览

arm - 如何修复 STM32CubeProgrammer 找不到 STM32 目标

大家好
,这里有人遇到过这个问题吗?
在我将我的代码运行到我的 stm32f446re 之后,我无法在最后一个代码之后上传任何代码并给我这个错误“没有找到 STM32 目标”

在此处输入图像描述


我尝试执行这些选项:-
1- 更新我的 ST-Link 驱动程序并将其作为“dpinst_amd64”运行。
2- 更新我的 ST-Link 固件,它已从 STM32CubeProgrammer 运行并更新,如图所示。


但不适用于任何这些解决方案。

0 投票
1 回答
661 浏览

ethernet - STM32H743 中的 IEEE 1588 PTP 时钟源

我正在尝试获取PTP时间戳STM32H743 NucleoLwIP到目前为止,以太网驱动程序没有问题,除了PTP. IEEE 1588 timestamping我遵循了参考手册 ( ) 上的说明 ( 58.9.7 Programming Guidelines for ) RM0433,如下所示。

但是,系统时间秒数寄存器 ( ETH_MACSTSR) 不计数,只是将初始值加载到系统时间秒数更新寄存器 ( ETH_MACSTSUR) 中。在参考手册中没有关于时钟源的明确信息PTP。在中,时钟配置页面中有如下图所示STM32F7的时钟路径。PTPCubeMX

在此处输入图像描述

但是,如下图所示, PTPin没有时钟路径。STM32H7

在此处输入图像描述

我是否遗漏了一些关于从寄存器中获取系统时间的ETH_MACSTSR信息ETH_MACSTNR

0 投票
1 回答
1390 浏览

cmake - Clion (stm32的嵌入式开发) CMake not found arm-none-eabi-gcc 编译器

我制作了类似教程的项目https://blog.jetbrains.com/clion/2019/02/clion-2019-1-eap-clion-for-embedded-development-part-iii/?gclid=CjwKCAjwhOD0BRAQEiwAK7JHmKUzvoJnORtCn3YxpsSb00Ep_dE0gNQOytiXVgFj6EXOwjyCAIH&EgXTBosrcQQAwjyCAIH&EgXTBosrcQQAawjyCAIH

我从https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads获得 arm 工具链

通过 .bashrc 将 bin 文件夹添加到 PATH。控制台命令运行良好:

使用 STM32CubeMX 在 Clion 中制作项目后 cmake 未配置:

但是 bin 文件夹已经在 PATH 中!!!

如果通过 pacman 安装 toolchail 或将 bin 文件夹的所有内容复制到 /usr/bin/,Clion 会查看编译器,但找不到其他文件,如 nano.specs、nosys.specs、stdint.h 和其他包含。

我不知道如何将 Clion 和 CubeMX 指向工具链的正确路径。

0 投票
2 回答
849 浏览

stm32 - 带有 STM32f103c8t6 Bluepill 和 CAN 总线的 HAL_CAN_ERROR_PARAM

我正在努力通过带有 stm32f103 bluepill 板和 SN65HVD230 收发器(端接)的 CAN 总线发送消息。在另一端,我使用终止的 USB 可以适配器,工作正常。CAN 总线速度为 500kbit/s。

SN65HVD230 的连接:

CubeMX 中的配置

固件版本 1.8.0。这是main.c

在调试器中调用 HAL_CAN_AddTxMessage 3 次(3 个邮箱?)后,在 hcan.ErrorCode 中显示 0x200 错误,即定义为 HAL_CAN_ERROR_PARAM。看起来所有邮箱都已满,没有消息发送到总线。

任何想法如何调试这个问题并让它工作?

0 投票
1 回答
553 浏览

c - 如何使用 IAR 解决下载和调试问题?

每当我在 Iar 嵌入式工作台 V8.5 上使用 STM32cubeMX 生成代码时,此错误仍然存​​在

在此处输入图像描述

0 投票
1 回答
40 浏览

c - STM32cubeIDE 忽略我的代码并使用 MX 配置

我有个问题。STM32cubeIDE中是否有禁用CubeMx的选项?

我只想使用UART。所以我在 main.c 文件中编写了 PIN 和 UART 配置。但是 CubeMX 已经配置了 UART 的引脚,完全忽略了我的引脚配置。

当我不知道是否必须在代码或 CubeMx 中配置某些内容时,这非常烦人。

提前感谢您的回答。