问题标签 [cubemx]
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.
freertos - CubeMX freeRTOS V9 在 STM32F4 上崩溃
我在使用 cubeMX 的 STM32F4 上遇到了 freeRTOS 的具体问题。当我使用支持 freeRTOSv8 的旧版本 CubeMX(具有包支持,例如 STM32Cube_FW_F4_V1.14.0)时,它运行良好,没有问题。当我将 CubeMX 更新到支持 freeRTOSv9 的最新版本时,它在托盘运行 RTOS 调度程序时崩溃
它在第一个任务启动prvPortStartFirstTask() 期间崩溃;
arm - STM32F767ZI 与 DAC082S085 接口
我计划在同步模式下使用 STM32F767ZI USART 端口并控制 DAC (DAC082S085) 来生成两个模拟信号。我还想控制这些模拟信号的幅度。那么,在 CubeMx 和 Keil 中我该怎么做呢?
谢谢
c - 更改 STM32 上的硬件流控制引脚
我一直在阅读有关串行通信的握手和硬件流控制的内容,但我有一个似乎找不到答案的问题。
如果您为 cubeMX 上的串行端口设置硬件流控制,它将设置所需的引脚。我知道您也可以使用其他引脚,这可以通过 cubeMX 完成。
我的问题是,您是否可以通过使用不同的引脚手动设置硬件流控制,或者您是否必须严格使用已实现的引脚?
我使用的是 STM32F207ZETx,我使用的是 USB 和串口 - 但是,当使用 USB 外围设备时,它会阻止我需要的 USART1 的硬件流控制引脚,并且我的项目需要硬件流控制!硬件流控制的备用引脚也已经使用,所以我有点麻烦。
c - 在 STM32 MCU 上接收 USB 消息挂起
我正在 ARM Cortex M 系列 MCU 上构建 USB 驱动程序,即 STM32F107VCT。我的代码是基于STM自己的代码生成软件CubeMX生成的USB CDC库代码。在 CubeMX 中,MCU 配置为支持 64 字节 USB 消息。
当 USB 有效负载为 8 个字符(即 8 个字节)或更小时,从主机发送消息并在 MCU 上解析它们可以正常工作。我可以在 Wireshark 中看到此类消息在网络上被填充为 64 字节。
当发送 9 个字符时,MCU 停止执行(不进入硬件故障处理程序)并且没有遇到我在 CDC_Receive_FS 函数中插入的任何断点,如下面的代码段所示。
我可以看到使用 Wireshark 从 PC 发出的 USB 消息(填充到 64 个字节,就像使用 8 个字符作为有效负载时一样),并且 MCU 硬件确认了该消息,但 MCU 在没有到达任何断点的情况下停止。
我的主要问题:
有谁知道为什么这会停止?也许我缺少一些简单的设置?是否有任何较低级别的代码可以放置断点以真正尝试找出发生了什么?对我来说,不清楚实际调用 CDC_Receive_FS 的函数是什么
我对 CDC_Receive_FS 的实现:
如果需要一些其他信息来解决问题,请告诉我。
USB 驱动程序由以下 CubeMX 自动生成的代码初始化:
stm32 - STM32 UART 接收无法正常工作
我花了一整天和今晚试图找出我的接收功能不起作用的原因。当我最初开始这个项目时它很好(这是几天前)。从那以后我已经做了更多的工作,现在它不起作用了。
我什至现在在 CubeMX 上创建了一个新项目,只设置了 jtag 和 uart5,但仍然没有接收功能。我可以确认该板在我从事的许多旧项目中都能正常工作。
我相信在构建过程中发生了一些事情,但我无法弄清楚。
我正在使用 STM32F207 芯片。
下面是我为测试 UART 功能而编写的非常基本的程序。我可以很好地传输,只是没有接收功能起作用。
我什至在我的主循环中添加了简单的“HAL_UART_Receive()”,超时时间很长,它完全跳过了整个函数!
我也强制激活了 UART 中断,但这并没有做任何事情。
我今天早些时候用之前的提交恢复了这个项目,并且构建运行得很好。然后它在编译后再次停止工作。我试图再次恢复它,第二次它没有解决问题。
当向 MCU 发送数据时,触发 RXNE 标志并且数据寄存器被更改,但是不会更改为远程发送的任何内容。
我的想法不多了!
主要.c:
usart.c:
stm32f2xx_it.c(中断):
embedded - USB CDC:STM32F103RBT6 无法显示 USB 设备
我有一个带有 STM32F103RBT6 的 Olimexino-STM32。我在 Windows 10 x64 和 STMCubeXM 4.27.0 上使用了 STM32 Workbench 2.6。
我在 CubeMX 中选择
- STM32F103RBT6
- 碾压混凝土 HSE
- USB
- USB 设备通信设备类
- 调试线:JTAG 4 针
- 修复时钟速度
- 在 PA5 上添加 LED1 作为 GPIO 输出
- 在 PA1 上添加 LED2 作为 GPIO 输出
- 工具链 SW4STM
- 堆栈大小
在 main.c 中的 while 循环中
在 usb_cdc_if.c
生成、编译和闪存到板。我可以看到主循环中的 LED 闪烁。速度似乎也正确,但我无法在 Windows 上注册设备。我可以使用来自分销商的示例十六进制文件在引导加载程序处于活动状态的情况下刷新电路板。在那里我可以注册COM端口。所以我可以看到 USB 端口没问题,但是生成的代码没有注册 COM 端口。
有任何想法吗?
https://www.olimex.com/Products/Duino/STM32/OLIMEXINO-STM32/
这是 test1.ioc 文件
usb-drive - STM32F411我需要通过USB高速发送大量数据
我正在使用带有 USB CDC 库的 STM32F411,该库的最大速度为 ~1Mb/s。我正在创建一个项目,其中有 8 个麦克风连接到 ADC 线路(这部分工作正常),我需要一个 16 位信号,所以我通过从一条线路添加前 16 个信号来提高精度(ADC 只提供 12-位信号)。在我的项目中,一条线需要 96k 16 位样本,因此所有 8 条线都有 0,768M 信号。这个信号需要12000Kb的空间,但是STM32只有128Kb的SRAM,所以我决定一秒发送120个左右100Kb的数据。
结论是我需要 ~11,72Mb/s 来发送这个。
问题是我无法做到这一点,因为 CDC USB 将我限制在 ~1Mb/s。
问题是如何将 STM32F4 的 USB 速度提高到 12Mb/s。我需要一些提示或库。
或者我应该在 CubeMX 中设置“音频设备”吗?
freertos - STM32F411、FreeRTOS 和 CubeMX HardFault_Handler() 连接到端口后
我的项目需要帮助。我正在使用 Atollic TrueSTUDIO、CubeMX 和 FreeRTOS。我有一个项目,我从 ADC 接收数据,并试图通过 USB 发送它。一切正常,直到我在 PC 上打开端口(我正在尝试 HTerm、RealTerm 等),然后调试停止并HardFault_Handler()
出现。
这是我的 main.c(一切都是由 CubeMX 为 FreeRTOS 生成的:
这是我的 usbd_cdc_if.c:
有人可以帮助我吗?
stm32 - STM32F303C8代码没有进入while循环
我已经尝试了一切,在这里我真的很茫然。
问题陈述:代码没有进入while循环。
1.在STM32F303C8上工作。
2.我有三块板:
所有人都有相同的IC并给出相同的问题。所以问题一定是软件相关的。
- 我已经在 BitBucket 上发布了整个代码和 cubeMX 文件。请在此处找到链接:CubeMx 软件 TrueStudio 项目的链接
编辑1:相关代码在这里
- 代码只是拒绝进入 while 循环。
- 如果 IWDG init 函数被删除,代码将停留在序列中的最后一个 init 函数调用处。如果 IWDG 被注释,它会跳回到代码的开头并执行到 while 循环的开头。
- 会不会是启动文件?
提前感谢您的支持。
亲切的问候, Aditya Ayachit
can-bus - 使用 CubeMX 和 uVision 5 为 STM32F446RE 编程 CAN 总线
我正在尝试使用 CubeMX 代码生成器和 Windows 10 上的 uVision 5 IDE 对 STM32F446 进行编程,以便使用 CAN 总线。
我已经为 STM32-F446RE Nucleo 板配置了我的 CubeMX 项目。我将 PA12 配置为 CAN1TX,将 PA11 配置为 CAN1RX。STM32-F446RE Nucleo 板的其余引脚默认设置。我已经为 uVision 5 IDE 生成了代码。
首先,我尝试按照 stm32f4xx_hal_can.c 注释中的说明以及 HAL 文档 DocID025834 Rev 5 第 120 页上的说明来遵循有关如何使用 HAL 和驱动程序的说明。此页面提供以下说明:
- 使用 __HAL_RCC_CAN1_CLK_ENABLE() 为 CAN1 启用 CAN 控制器接口时钟,使用 __HAL_RCC_CAN2_CLK_ENABLE() 为 CAN2 和 __HAL_RCC_CAN3_CLK_ENABLE() 为 CAN3 如果您仅使用 CAN2,则必须启用 CAN1 时钟。
- CAN 引脚配置 **使用以下函数为 CAN GPIO 启用时钟:__GPIOx_CLK_ENABLE() ** .... 步骤 2 的第一个子步骤是问题所在。我找不到函数 __GPIOx_CLK_ENABLE()。我在其他一些论坛上注意到,该函数可能有另一个名称,__HAL_RCC_GPIOx_CLK_ENABLE(); 但它也不被 IDE 识别。我是否缺少包含文件?“x”是否应该替换为某个数字,例如我要使用的引脚的引脚号?如果是这样,pin应该用什么格式表示?
令我更加困惑的是,我查看了各种 youtube 视频,但似乎没有一个提到 HAL 手册中提到的上述步骤。
我在我的 IDE 上安装了以下内容,其中包括:通用:ARM::CMISS-Driver 版本 2.3.0 和 2.2.0,ARM::CMISS 版本 5.4.0 和版本 5.3.0。设备特定信息:Keil::STM32F4xx_DFP 版本 2.13.0。Keil::STM32NuceloBSP 版本 1.6.0。
我一直在寻找信息,但没有成功,非常感谢您的帮助。