问题标签 [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.
stm32 - 在 DMA 模式下无法从 UART 接收数据
我试图在我的 NUCLEO F446RE stm32 板上从我的电脑接收 8 个字节。传输到电脑工作。问题是,我无法使用 DMA 接收数据。我看到了一个代码几乎相同的例子,它对这个人有用。如果我使用中断模式(只需将 HAL_UART_Receive_DMA 更改为 HAL_UART_Receive_IT,它就可以工作,并且正在调用 RX Complete 回调。
这是完整的 main.c。DMA 处于循环模式。
cmake - 为 nucleo stm32f767 编译 freertos 时出错
我已经使用 cubeMX 生成了代码,并且在编译它时给了我以下错误。我已经尝试了几个修复,但没有一个有效。
CMakeLists.txt
IDE:克莱恩 2019.3
我正在使用带有 STM32F767 的 NUCLEO-F767ZI
stm32 - 如何进行 USART 通信 请告诉我进行 usart 通信应注意的一切
我在 ubuntu 上使用 Atollic 和 cubemx。
c - STM32 SPI同步问题
我在 STM32F429 上遇到了一些非常奇怪的行为,试图通过 SPI 与另一个微控制器同步数据。STM32F4 是 SPI 从机。我一直在尝试将我的代码简化为一个最小的示例,所以现在,我一次发送一个字节,在 STM32F4 上接收具有阻塞功能,并通过 UART 打印它以查看它接收到的内容。
我有一个额外的 GPIO 引脚,我在启动 SPI 事务之前断言它连接到 EXTI 引脚,以确保 STM32F4 在 SPI 消息开始之前被中断。我已经删除了所有其他应用程序代码,所以这是我代码中唯一的内容。
问题是,如果我通过发送一些特定的值,那么 SPI 会失去同步(0x44 会导致它相当可重复,但其他值会导致问题)。
例如,如果我从主服务器发送一个字符串以及一个递增值:
在接收端,它打印出:
它可以成功运行任意长时间,然后在我发送 0x44 时失败。这是相关代码(其他一切都是由 CubeMX 自动生成的,本质上是默认配置)。
我已经尽可能地降低了主控的 SPI 速度(我使用多个微控制器作为主控,并且都有问题,但我目前使用的是赛普拉斯开发板),所以它以 500kHz 运行。我尝试了 CPOL 和 CPHA 设置的所有排列。重置STM32F4修复它,直到我发送另一个0x44值,所以我认为它与主设备没有任何关系。我尝试将 EXTI 中断设为最高优先级,删除所有其他中断源,取出所有其他应用程序代码,完全删除外部中断并在主循环中轮询 SPI 状态。我已经向主设备添加了延迟,以确保从设备有足够的时间来接收和处理,以及调整 HAL_SPI_Receive 函数中的超时值。我也尝试改变:
到阻塞的while循环:
我真的很茫然,我不知道还能尝试什么。
谢谢,保罗
编辑:这是 GPIO 配置。PF10 是我的 EXTI:
编辑2:这是轮询版本,已更新以删除从 ISR 中调用 HAL_SPI_Receive。有同样的问题。
c - 如何在没有 RTOS 的情况下将 mbedTLS 与 lwip 一起使用?
我想在 STM32F4 中使用 mbedtls 和 lwip。而在 Cubemx 中,当我想选择带有 lwip 的 mbedtls 时,我无法选择没有 FreeRTOS 的中间件。但我不想使用 FreeRTOS。当我生成代码并删除 FreeRTOS 文件、文件夹等时。我有很多错误。我怎样才能同时使用 lwip 和 mbedtls ?
c - stm32CubeMX 的 cmsis_os.c 有修复吗?
我正在使用 STMCubeMX 中提供的 cmsis_os.c 和 cmsis_os.h。我发现至少有两个地方是 cmsis_os.c 应该修复的。
第一个:
TaskFunction_t 是否应该替换为 TimerCallbackFunction_t?
第二个:
我认为它必须是:
你怎么看?
有没有办法让 STMCubeMX 生成修补文件而不是原始文件?
谢谢,阿尔贝托
eclipse - STM32F429 人工智能工具 AI_DATA_FORMAT_UQ 未找到
我正在用STM32F429研究人工智能。我使用 CubeMX 为 SystemWorkbench 生成代码。CubeMX 生成的代码有AI_DATA_FORMAT_UQ命名宏,但它没有在任何地方定义。我是说;
AI_DATA_FORMAT_UQ 未在其他任何地方定义。你知道如何找到这个值吗?还是可以省略它?
谢谢!
cmake - 更正 CMake 的链接器标志
我正在尝试将嵌入式 gcc arm- 项目转换为使用 ARMClang 而不是 GCC。我的重点是使用 CMake 自动生成生成文件的任务,但我不明白为什么我不能强制执行链接器标志,并且在构建过程中总是出现以下错误
[ 96%] 构建 ASM 对象 CMakeFiles/CLION-f103-armclang.elf.dir/startup/startup_stm32f103xb.o 致命错误:A9912E:未选择 --cpu
我的 CMakeLists.txt 文件的内容如下
首先,要使脚本正确构建和链接,CMakeLists.txt 文件需要进行哪些更改!?其次,如何使链接器输出标志看起来尽可能地遵循。
非常感谢任何帮助
stm32 - 第一个 STM32F3 项目使用什么库或项目生成器?
我即将开始我的第一个 STM32 项目。(我以前使用过 atmega MCU,并且在 C 语言方面拥有数十年的经验,主要是服务器端。)
考虑到我想在 Linux 的命令行上使用 make 进行开发,似乎有三个选择。
- STM32CubeMX 生成的 makefile 项目,
- STM32CubeMX 生成的 makefile 项目,包括 FreeRTOS,或
- 使用 libopencm3 的 makefile 项目。
该应用程序将使用不同的协议在 4 个或更多串行端口上处理和发送消息。偶尔会设置或清除 GPIO。
我的问题是:
- 为什么 libopencm3 存在?为什么有人会选择它而不是 STM32CubeMX 生成的 makefile 项目。
- 对于这样的项目,学习 FreeRTOS 是否值得?
c - stm32 HardFault_Handler 复位后
我目前正在开发基于 stm32f103C8 的 pcb。当前项目状态可以在这个GitHub 项目中查看。
我面临的问题是我无法在不调试设备的情况下运行代码。我的问题是:我该怎么做才能使代码在没有调试器的情况下运行?
设置
印刷电路板
我使用下面的Schematic。目前未填充电池管理和外部时钟。所以我使用内部振荡器。我通过由稳压器调节的 5V 电源为设备供电。
编程
我使用带有 SWD 的 st-link v2。只连接了 swclk、swdio 和 gnd。为了开发应用程序代码,我使用 cubemx(ide 和代码生成器)。
我测试过的
- 当从 GND 断开 Boot0 和 Boot1 时,我可以使用调试器正常运行代码
- 当将 Boot0 和 Boot1 连接到 GND 时,调试器直接跳转到 HardFault_Handler
- 当没有调试器连接到 Boot0 和 Boot1 时,代码永远不会运行。
- 电压水平稳定
- 使用电源循环和 NRST 复位 MCU 时的行为没有区别。