问题标签 [stm32f0]

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 投票
1 回答
1131 浏览

c - STM32G0 定时器中断 PWM 无法正常工作的问题

我想使用 stm32 生成 PWM 信号,但我必须能够在每个信号后更改占空比。我的问题是,如果我尝试它不能正常工作。它以相同的占空比发送 3-5 个脉冲,然后更改值。我不明白为什么它在每次脉冲后都会改变它。还有另一个问题,我必须在每个脉冲之后重新启用通道的 CCER 位,否则它不起作用,它会因任何原因被重置。

我正在使用带有 Keil uVision 5 的 STM32G071 Nucleo-64 板

我用 STM32CubeMX 生成了开头并添加了我的代码,所以它可以工作,但它没有。我不知道该怎么做。我会很高兴得到一些建议。

它不会改变它需要大约 3-5 个信号的每个信号的占空比,然后它会改变占空比。 示波器:输出 PWM 通道 1

0 投票
2 回答
282 浏览

arm - 如何将为目标设备 STM32F072B 编写的 STM32 片段(代码示例)转换为 STM32F030r8

亲爱的,

我是嵌入式系统的新手。

我已经从 st.com 下载了为目标设备 STM32F072B 编写的代码示例。由于我将 Nucleo-64 与 STM32F030r8 MCU 一起使用,我需要转换下载的代码示例以支持我的目标设备 STM32F030r8。

我可以在 Keil 中构建代码示例(为 STM32F072B 编写),但是当我将目标设备更改为 STM32F030r8 时出现错误:

请告诉我如何转换下载的代码示例以支持我的目标设备 STM32F030r8。

问候尼亚斯

0 投票
2 回答
1128 浏览

rust - Rust 嵌入式应用程序在 AArch64 系统下未正确链接

我正在尝试使用 ARM 系统作为主机为 stm32f0 编译和调试嵌入式 rust 应用程序。该应用程序已经编译并在英特尔安装下运行。

我在Pinebook Pro上运行,由 Quad Cortex-A53、64 位 CPU 驱动。操作系统是 64 位版本的 Debian:

我用 rustup 为 AArch64(通道稳定)安装了 rust 和 cargo:

根据这个问题,我发现 rust-lld 不是以二进制形式分发给 ARM 系统的,所以我必须从源代码编译它:

现在编译过程完成没有问题:

但是,生成的 elf 文件似乎链接不正确:尝试通过加载它会gdb导致openocd某种静默失败:

加载大小为空,因此不会刷新新程序。相比之下,当使用在我的 Intel 系统中编译的 elf(openocd仍在 arm 笔记本电脑上运行)时,一切都按预期工作:

似乎精灵没有正确链接。运行readelf -l突出显示在我的 ARM 系统上的入口点集是0x0,这对于 stm32f0 是错误的。这是readelf在我的 ARM 笔记本电脑上:

虽然这是来自工作的精灵,但在我的英特尔系统下编译:

我不确定这是否与目标体系结构与主机相同(因此使用 linux 用户区链接)或简单有关,因为对 arm 系统的支持较少。

谁能指出我正确的方向?

0 投票
1 回答
585 浏览

embedded - STM32F072C8T7 (Boot0) 使用 USB 的引导加载程序

在我的项目中,我使用的是 STM32F072C8T7 MCU。在这个 MCU 中,只有一个名为 BOOT0 的引导引脚。根据应用说明,我必须配置 BOOT0 -> GND 以选择主闪存作为引导空间。

我已经这样做了,该程序似乎正在运行。我想知道的是,当我以后想升级设备的固件时,是否需要对 BOOT0 引脚进行任何更改?

在此处输入图像描述

0 投票
2 回答
607 浏览

c - 无法在 STM32F030 上设置或重置 GPIO PA12

我在尝试设置或重置 STM32F030 上的一个 GPIO 引脚时遇到了一些麻烦。

我正在使用 STM32F0xx_HAL_Driver 并像这样初始化 GPIO PA12:

我还使用以下代码设置了我的 UART:

我知道 PA12可以用作 UART1_RTS 引脚,但我没有将硬件流控制设置为使用 RTS 或 CTS。

我面临的问题:代码初始化后,我可以通过 UART1 连接接收消息。要回复,我需要设置我尝试使用 PA12 设置的外部 IC 的引脚。但是当我打电话时:

什么都没发生..

也调用 GPIO_PIN_RESET 不会做任何事情..

我在这里想念什么?

我已经检查(并测量)了 PCB,PA12 仅通过 10k 下拉电阻连接到 0V,外部 IC 没有将 PA12 输出拉低。

提前谢谢了!

编辑:

根据评论中的要求,我的 UART 引脚配置:

我正在使用 DMA 设置 Rx:

第二次编辑!:

我刚刚发现在UART初始化工作后重新初始化GPIO PA12!我现在可以毫无问题地切换 PA12..

但这不是应该的方式!我正在研究 STM32 HAL-lib,但找不到设置 PA12 的代码...

0 投票
1 回答
70 浏览

stm32 - STM32F103C8T6板用Keil 5不闪烁

我有以下问题。一旦我使用 ST CubeMX 生成 Keil 项目并将项目写入 STM32F103C8 MCU,一切顺利;但是,在第一次闪烁之后,我无法再闪烁它,因为它会引发以下错误:

我拉了 Boot0 引脚,激活它,并擦除了 MCU。此程序仅帮助一次闪烁;但是,如果我用裸机或 CMSIS 代码(不是由 CubeMX 生成)刷新 MCU,它可以正常工作,并且我可以根据需要多次刷新而不会出错。您能否提供建议,可能出了什么问题,我该如何解决?

0 投票
0 回答
56 浏览

installation - 声音固件安装因内部原因失败

我正在使用 OpenSTM Workbench 尝试对 STM32F0 MCU 进行编程。我在 Windows 10 上使用 Eclipse(带有 OpenSTM 扩展)。在创建项目时尝试为我的变体安装外围库时,我不断收到以下错误:

声音固件安装因内部原因失败错误代码 = ERROR_DOWNLOAD_TASK_START_ISSUE

错误的完整屏幕截图:

错误信息

我尝试下载外围库的 zip 并将其放在固件目录中,但这不起作用。由于某种原因,其他固件(硬件抽象层)安装得很好。我尝试使用 zip 和提取文件复制它在文件夹中使用的格式,但无济于事。

我能做些什么来解决这个问题?

0 投票
1 回答
307 浏览

embedded - 在 STM32F1 的中断处理程序中使用 Tim2

我正在使用 TIM2 通用定时器闪烁 LED。

main.c 中的代码

单击按钮时,应调用 EXTI 中断以使 LED 快速闪烁 20 次。但是,LED 保持亮起并完全停止闪烁。

您能否建议我如何调整 EXTI 的中断 ISR,以便它可以使用 TIM2 以及更快的闪烁。

0 投票
1 回答
3940 浏览

c - STM32CubeIDE 在地址“xxx”处中断,没有可用的调试信息,或在程序代码之外

我正忙着用 STM32F030C8 单片机开发一些新硬件。我正在使用带有 gcc 的 STM32CubeIDE。我对微控制器开发非常陌生,这是我使用 ST 及其工具的第一个项目。

这是一个非常基本的程序,只触发一个 GPIO。其余的都是生成的代码。由于我在这个领域的经验很少,我希望有人可以指出我可以查看的位置。我怀疑这可能是配置问题。

这是代码(我删除了所有生成的注释以使其更紧凑):

当我单步执行代码时,一旦我单步执行“我的代码 2”,它将触发“我的代码 1”上的 GPIO,这将导致问题。我什至尝试过只运行一个完全生成的程序而不做任何修改,但问题仍然存在。这是一个快速测试,以查看程序是否确实在 mcu 上运行。它确实如此,并且触发了 GPIO。

调试器控制台输出:

临时断点是程序开始的地方,然后我可以从那里运行。或者单步执行,结果都是一样的。

控制台输出:

完全错误:

这是两张可能有帮助的图片。正如我提到的,我对此很陌生。所以任何其他需要的信息请询问。提前致谢。

调试视图 反汇编

0 投票
1 回答
66 浏览

stm32f0 - STM32F042G6 不会跳转到引导加载程序

我有一段代码应该在按下按钮(而不是在引导引脚上)打开电源时将电路板变成引导加载程序模式。

...等等。但是,运行此代码时,uC 挂起并且没有被 USB 检测到。我究竟做错了什么?