问题标签 [stm32]

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

arm - UART 与 STM32F407 (F4Discovery)

我在尝试使用 F4Discovery 板上的 UART (USART1)(基于 STM32F407)时遇到问题。我对 STM32 和 Keil(我正在使用的 IDE)很陌生。这是我的代码:

如果有人可以提供帮助,我将不胜感激。它永远不会将 0x49 从 UART1 TX 发送出去(检查了引脚 PA9 和 PB6),然后无休止地卡在 while(USART_GetFlagStatus ...)上。我正在观察使用 Keil 调试器,发现它在一段时间内卡住了。

我将 stm32f4xx_usart.c 驱动程序包含到项目中。

谢谢!

0 投票
1 回答
220 浏览

eclipse - CDT Eclipse:未定义的变量,甚至包括 .h 文件

我是使用 CDT 和 Eclipse 的新手。我想做一个 STM32F10XX (Cortex-M3) 应用程序。我在编译代码时遇到问题,它总是显示未定义的变量错误。我使用了 Eclipse 设置,如为 STM32 Discovery Development 设置 Eclipse 和 Code Sourcery lite 中所示。

但我自己编写启动代码,只使用 stm32_flash.ld 和 startup_stm32f10x_md_vl.S。

是否遗漏了任何包含或项目设置?

讨论stackoverflow问题

0 投票
1 回答
1580 浏览

elf - ELF 文件的大小与 RAM 中的大小

我有一个 STM32,我将 ELF 文件加载到 RAM 中(使用 OpenOCD 和 JTAG)。到目前为止,我还没有真正关注我加载的 ELF 文件的大小。

通常,当我编译一个对于我的板来说太大的 ELF 文件(我的板有 128KB 的 RAM 可以加载可执行文件)时,链接器会抱怨(在链接器脚本中我指定了 RAM 的大小)。

现在我注意到输出的 ELF 文件的大小,我看到它是 261KB,但链接器并没有抱怨!

为什么我的 ELF 文件这么大,但我的链接器却很好?主机上的 ELF 文件是否完全加载到板上?

0 投票
1 回答
2855 浏览

gdb - 从 Flash 启动时断点不起作用

过去,我一直在调试加载到我的 Cortex M3 (STM32F2) 的内部 SRAM 中的可执行文件,没有任何问题。我最近一直在将我的可执行文件加载到 Flash(因为大小问题)。

从那以后,使用 GDB 进行调试就一直不起作用。据我了解,当可执行文件在 Flash 中时,只能使用硬件断点(与软件断点相反),我有六个硬件断点。但是,当只设置一个硬件断点时,GDB 会产生错误消息:

可能出了什么问题?我的硬件断点是否在后台进行?

注意:我使用 OpenOCD 通过 JTAG 加载可执行文件。

0 投票
3 回答
2500 浏览

c - STM32 Discovery 嵌入式串行引导加载程序 USART、IAP

我有一个严重的问题,我想使用 usart 启动我的 stm32 发现板(STM32L152RBT6)。我尝试通过设置 BOOT0=HIGH 和 BOOT1=LOW 进入系统内存启动模式。然后我尝试使用超级终端发送我的 .BIN 文件(没有任何反应)。我还尝试了 ST 的 Flash loader 实用程序(它在检测目标时挂起)。

我还阅读了一些关于 In Application Programming 的数据表。我下载了 IAP 固件并烧录了它,但超级终端上什么也没有出现,可能是因为 usart 可能设置了一些不同的配置。

我只想使用usart对我的stm32发现板的闪存进行编程。请帮忙!启动到系统内存后,下一步是什么?

0 投票
1 回答
1412 浏览

gcc - 调试器在具有浮点参数的数学函数内停止

我正在使用Keil uVision编译gcc器(ARM EABI 的 Sourcery Codebenchlite )对STM32F4 cortex M4芯片进行编程。

我设置的编译器控制字符串是:

当调试器遇到一些数学函数(例如asinf()atan2f()等)时,它会停止。

我检查过这些函数的参数也是单精度的。

我认为这是因为缺少一些使用VFP浮点的编译器指令,但无法识别它。

有什么我错过了吗?

我做的一个例子的反汇编代码:

调试器可以评估 atan2f(0.3,0.4),但在评估 atan2f(a,b) 时会在 0x0803B9CA 处停止。不知道为什么数字有效但变量无效。

0 投票
1 回答
4259 浏览

arm - STM32F103中的ADC可以采样到3Msps吗?

我是 stm32 微控制器的新手。我在 STM32F103 数据表中读到它有 3 个 ADC 转换器,每个转换器能够执行高达 1Msps。是否可以利用这 3 个转换器对高达 3 Msps 的 1 个通道进行采样?我猜如果我按顺序开始每个转换器的转换,一个转换器与另一个转换器之间的时间差为 0.333us,这是可能的。所以我每 1us 持续时间从 3 个转换器获得 3 个转换结果。

可行吗?请指教。谢谢。

0 投票
1 回答
4366 浏览

debugging - 使用 SysTick_Config 后无法调试

我 - 一个嵌入式初学者 - 在嵌入式编程的黑魔法世界中奋战。到目前为止,我已经赢得了很多战斗,但是这个新错误似乎很难。

首先,我的嵌入式设置:

  • Olimex STM32-P207 (STM32F207)
  • Olimex ARM-USB-OCD-H JTAG
  • 开放式强迫症
  • Eclipse(带CDT和GDB硬件调试)
  • 代码源工具链
  • 用于 RIDE(使用 GCC)的启动文件和链接器脚本(为 STM32F207 改编的内存映射)
  • STM32F2xx_StdPeriph_Lib_V1.1.0

使用那里的许多教程和问答,我能够设置 makefile、链接器和启动代码,并使用 STM 的标准库(经典的闪烁,使用按钮和中断等)运行一些简单的示例。然而,一旦我开始使用 SysTick 中断,事情就变得一团糟。

如果将 SysTick_Config() 调用添加到我的代码中(即使是空的 SysTick_Handler),...

...然后我的调试器从(内联)函数 NVIC_SetPriority() 开始,一旦我点击“运行”,我就会进入 HardFault_Handler()。这只发生在使用调试器时。否则代码运行正常(从闪烁的 LED 中看出)。

我已经阅读了很多并尝试了很多(修改编译器选项、链接器、启动、使用 SysTick_Config() 调用尝试其他代码),但没有解决这个问题。

一件事可能是一个提示:编译器在两种情况下(有和没有 SysTick_Config 调用)都从 0x00000184 开始。在没有 SysTick_Config 的情况下,调用此点位于 main() 的开头。使用 SysTick_Config 这指向 NVIC_SetPriority()。

有人知道发生了什么吗?关于我可以在哪里继续寻找解决方案的任何提示?

我不知道有什么进一步的信息有助于解决这个谜题。请告诉我,我很乐意提供缺失的部分。

非常感谢!

/edit1:添加了 arm-none-eabi-readelf、-objdump 和 -size 的结果。

/edit2:我删除了代码信息以为实际代码腾出空间。有了这个新的简化版本,调试开始于

阅读:

主程序

/编辑3:

Soultion:因为解决方案隐藏在评论中,所以我把它放在这里:

我的链接器文件丢失ENTRY(your_function_of_choice);(例如 Reset_Handler)。添加这个使我的调试器再次工作(它现在从正确的点开始)。

谢谢大家!

0 投票
1 回答
13918 浏览

c - STM32F4Discovery:CAN过滤器配置

我正在使用STM32F4Discovery套件构建一个简单的CAN接口。我设法对其进行了配置,以便可以传输 CAN 消息,但是,我一直无法接收它们。据我所知,要接收 CAN 消息,它必须通过接受过滤器。我想将过滤器设置为接受从 ID 0x700 到 0x7FF 的所有(标准,2.0A)消息。我该怎么做呢?

我已阅读参考手册,但我不知道如何实际配置过滤。

0 投票
3 回答
4350 浏览

c - DAC信号发生器stm32

我正在编程 stm32f2xx 的 DAC 外设。我有一个字节数组(声音),我想生成采样率 = 8K 的信号。

现在我的问题是:如何指定采样率?

注意:我google了很多。我只使用 DMA 生成三角波和正弦波。我不想使用 DMA。

在此先感谢您的帮助...问候,