问题标签 [bluepill]

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 回答
1714 浏览

stm32 - STM32F103 无法从应用程序跳转到引导加载程序

我想从 STM32 Blue Pill STM32F103C8T6 上的应用程序跳转到引导加载程序。我的方法看起来是: - 向 BKP->DR1 写入任何值;- 进行重置(NVIC_SystemReset());- a main 的开头,检查是否 BKP->DR1 != 0,然后将其设置为 0 并跳转到引导;

调试显示,核心跳得很远(0xffffffffe)并且没有任何反应。我的代码:

来自 IDE 的 SS: 内存 寄存器

我不知道为什么它不起作用。此外,0x1FFFF000 区域的跳转内存看起来还可以: 跳转前

这是在跳转失败 之后: 跳转之后 也许我的芯片是假的?ST Utility 显示正确的值(设备 ID、闪存大小、MediumDensity),但它没有任何意义。当我使用 BOOT 引脚时,引导加载程序已正确加载并且 STM 闪存加载程序可以识别它。即使我的芯片是假的,嵌入式引导加载程序也可以工作,所以我无法弄清楚为什么从应用程序跳转不起作用。

0 投票
1 回答
172 浏览

hal - __weak HAL_GPIO_EXT1_Callback (uint16_t GPIO_Pin) 即使我在源代码中定义了 HAL_GPIO_EXT1_Callback (uint16_t GPIO_Pin)

我正在使用带有 Blue Pill 板的 STM32 CubeIDE 工作。

为了控制 main.c 的大小,我将函数组收集到了几个 c/h 对文件中。其中一对是“myirqcallbacks.c/h”。目前我在这个 c/h 对中有两个 UART IRQ 和一个外部引脚 IRQ 回调。

UART 工作正常,但 EXT IRQ 无法调用我的代码。它改为在 stm32f1xx_hal_gpio.c 中运行 __weak 副本。

当代码在 main.c 中时,它运行正常。

似乎编译器看不到我的 EXT IRQ 回调函数,因此未能弃用回调的 __weak 副本。但是,它可以在那里看到两个 UART 回调函数。GPIO 和 UART IRQ 的结构有什么不同吗?

myirqcallbacks.h

myirqcallbacks.c

我认为这更多的是关于我的片状 c 文件结构知识,但我已经研究了几天,任何指针都将非常感激。

0 投票
1 回答
632 浏览

stm32 - 如何正确设置 STM32f103c8T Bluepill + Platformio + UART?

我一直在试图弄清楚如何将代码上传到 STM32103c8T bulepill 板。我的设置是

1- MacOs Catalina 2- STM32103c8T bulepill 板 3- SLAB UART USB-TTL CP2012 V3.0 4- Platformio IDE 5- STM32 CUBE 编程软件,通过 UART 检测并连接到我的板。表示连接没有问题,但设置 Platformio 有问题

顺便说一句,我是 ARM 世界的新手,我买了这个板来检查它的速度和深度睡眠和中断,我的意思是 Arduino Uno 不能做的所有事情。

问题是我不知道如何设置 platformio.ini 文件以使用 UART 方法与板通信,而不是请求 ST-link 加密狗!

我现在在Platformio.ini中拥有的是:

[环境:bluepill_f103c8]

当尝试上传程序时,我得到:

上传 .pio/build/bluepill_f103c8/firmware.elf xPack OpenOCD, x86_64 Open On-Chip Debugger 0.10.0+dev-00378-ge5be992df (2020-06-26-12:31) 获得 GNU GPL v2 许可有关错误报告,请阅读 http://openocd.org/doc/doxygen/bugs.html

调试级别:1

hla_swd

没有分开的

错误:打开失败

在程序“程序”中

OpenOCD 初始化失败

调用的关机命令

[上传] 错误 1

我只需要帮助让系统互相交谈并互相看到

PS 我想尽可能地使用bareMetal而不是使用arduino固件HAL

0 投票
3 回答
822 浏览

arduino - STM32 蓝色药丸和 Arduino IDE

我想用 Arduino IDE 对 Stm32 bluepill 进行编程,但是当我想定义像我写的“pinMode(A10,OUTPUT)”这样的引脚时,它会出错。错误是“'A10'没有在这个范围内声明”我想知道我应该如何在 STM32 的 Arduino IDE 中声明引脚

0 投票
1 回答
122 浏览

stm32 - STM32 BluePill LED 闪光灯使用 HAL_GPIO_TogglePin 表现异常

我有两个简单的 LED 闪光灯以 1 秒的间隔为我的 BluePills 编程闪光。一种方法使用 HAL_GPIO_TogglePin 切换 LED 状态,另一种使用 Set 和 Reset 切换 LED 状态。设置和重置按预期运行,但 HAL_GPIO_TogglePin 确实在工作,但它在某些时候几乎具有 PWM 效果。我已经在 2 个不同的 Bluepills 上尝试了这两种方法,结果都相同。

0 投票
1 回答
55 浏览

assembly - 在程序集中设置寄存器时出现奇怪的错误

我在玩蓝色药丸(Stm32F103CB)并试图通过汇编设置 r7 寄存器,

错误是,当我通过 gdb -> info registers 观察寄存器值时,我看到的是r8寄存器集而不是r7,如下图所示。

在此处输入图像描述

elf 的 objdump 反汇编似乎也是正确的。

在此处输入图像描述

我无法理解为什么会发生这种情况,对多个板进行了相同的尝试,我该如何调试和解决这个问题。

提前致谢。

0 投票
1 回答
1060 浏览

embedded - 为什么在尝试使用 openocd 连接 stlink-v2 时出现通信故障

我正在尝试使用 stlink-v2 连接到“stm32”“bluepill”以向其写入一些代码

每当我运行 openocd 时,它都无法连接我的 openocd.cfg 文件如下所示

当我运行 openocd 时,这是我收到的响应:

我以前在上面写了一些代码stm32f103bluepill当我连接到我的电脑时,代码运行(它导致 pc13 上的 LED 闪烁)

上次运行良好时,我没有更改 openocd.cfg 文件

0 投票
1 回答
151 浏览

c - STM32F103蓝色药丸-与闪烁的led裸机有关的问题

我在尝试运行此代码以使蓝色药丸板(STM32F103C8,ARM Cortex M3)上的内置 LED(位于 PC13)闪烁时遇到问题:

. 在这里我收到一些错误,我不知道为什么: 在此处输入图像描述

有人可以帮助我吗?此外,当我在 while 循环中声明无符号整数“i”时一切正常,但即使没有任何反应,LED 仍然不会闪烁。这是修改后的代码:

. 此外,我尝试了另一个技巧,在循环外声明整数“i”,如下所示:

. 然后,我收到了下一条错误消息: 在此处输入图像描述 . 现在,问题是为什么?请帮我。

0 投票
1 回答
372 浏览

embedded - STM32F103蓝色药丸从头中断

我如何从头开始为蓝色药丸创建中断?

我不想使用任何类型的特殊库。此外,我使用 Keil IDE,因此,通过“从头开始构建”,我指的是不使用任何额外的库,而不是在没有 IDE 帮助的情况下组装项目。

我试图寻找资源,但没有成功。有人可以帮助我,至少为我提供一些信息/参考书目吗?我将感激不尽。

此外,“奇怪的库”是指除 stmf32f1xx.h 头文件之外的任何其他库。我想在其中一个引脚的输入值切换时触发中断。为了做到这一点,在 AVR MCU 上非常简单,只要更改几个寄存器值即可。不幸的是,我不知道 ARM MCU 中的中断是如何工作的,以及我应该在哪些寄存器中写入什么值。

此外,更好地了解 ARM MCU 的中断机制将使我为解决去抖动问题做好准备。

0 投票
1 回答
80 浏览

embedded - NVIC 控制器是 DMA 吗?

我提出了一个与众所周知的STM32蓝色药丸有关的理论问题,更具体地说,我不知道NVIC控制器是否是一种DMA。我会说它是一个 DMA,只要它管理中断请求,另一方面,我还没有找到任何可以将 NVIC 归类为 DMA 的文档。