问题标签 [stm32f4discovery]

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 投票
2 回答
2371 浏览

arm - 如何通过 USB 读取 swd 输出?

我正在尝试编写一个类似于 stmicro STM-STUDIO的应用程序,它通过 USB从设备( STM32Fx Discovery )上运行的嵌入式应用程序读取变量。如何读取来自开发板的输出(变量),最好是使用 C# 应用程序的应用程序?

0 投票
3 回答
910 浏览

debugging - 通过蓝牙调试 stm32f4

我在微控制器领域相当缺乏经验,我来自 Java 背景,所以这个问题可能看起来有点菜鸟,但我没有找到太多关于这方面的信息。

那么是否可以通过蓝牙(使用eclipse或其他IDE)调试STM32F4板?如果是这样,你能给我一些可能有帮助的链接吗?我们正在建造一辆由发现板控制的机器人汽车,如果我们不想每次出现问题时都拆解整个东西,那么使用 USB 电缆进行调试并不是一个真正的选择。因此,这真的会派上用场。所以任何帮助表示赞赏

0 投票
1 回答
540 浏览

stm32f4discovery - Ubuntu 12.04 中带有 stm32f4discovery Cortex-M4 的 eCos

我在 stm32f4discovery Cortex-M4 中为 eCos 编写了一个简单的程序,它遵循以下步骤。

$ecosconfig 新的 stm32f4discovery

$配置工具

$arm-none-eabi-gcc -o hello.elf hello.c -Lecos_install/lib -I ecos_install/include -mcpu=cortex-m4 -mthumb -g -O2 -ffunction-sections -fdata-sections -Ttarget.ld -目录库

$arm-none-eabi-objcopy -O 二进制 -R .sram hello.elf hello.bin

其实,就是成功。但是,我不知道如何看到“hello ecos!”。

我想我需要设置波特率和 tty。所以,我使用 minicom 来做到这一点。不幸的是,我失败了。

0 投票
1 回答
13839 浏览

interrupt - STM32F4 板上的 SPI 从设备设置

我正在尝试通过主从配置中的 SPI 在两个 STM32F4 发现板之间进行通信。我已经有了主机的代码,但是我对需要对从机的 SPI 初始化进行的更改感到有些困惑。

我还想在主机发送数据时实现中断,而不是让从机一直轮询 RXNE 寄存器。但是,我不确定 SPI 的 NVIC 的确切配置。

下面是master的配置代码

参考手册指出我需要将 CPOL 和 CPHA 位配置为与主机相同,这对于 MSB/LSB 第一帧格式也是如此。除此之外,我不确定如何配置其余部分。

0 投票
7 回答
39443 浏览

stm32 - 如何在STM32F4中使用Backup SRAM作为EEPROM

在 STM32F4 上模拟 EEPROM 有两种方法:

  1. 片上 4 KB 备份 SRAM
  2. 片上闪存,具有特定的软件算法

此处描述了第二个选项:AN3969。

但不幸的是,谷歌一直无法提供有关如何使用第一个选项的信息 - 使用 4Kb 的备份 SRAM 作为 EEPROM?..

任何人都可以就这个话题提供帮助吗?

0 投票
2 回答
2160 浏览

c++ - stm32f4 g++ 错误涉及 newlib _kill_r,_kill,_getpid_r,_getpid,

我在将 c++ 代码编译到 stm32f4 微芯片上时遇到问题。

目标

我想在这里实现一些目标:

  1. 将 C++ 代码编译到 stm32f4-discovery (已在裸机程序上成功完成[带有构造函数和其他 c++ 特定功能的实现])
  2. 使用 ST 提供的外设库编写代码(在本例中,我使用的是 USART 功能)
  3. 使用 GNU 工具在不使用商业 IDE 的情况下编译代码(这是一项学习任务)

问题

我有两个项目设置,一个是 ac 项目,可以正确编译。我还用这个项目的输出刷新了 stm32f4,它运行正常。第二个项目使用相同的代码,对 C++ 编译器的 make 文件和文件名进行了细微更改(代码没有区别)。C 项目成功编译,C++ 项目抛出错误。

这两个项目及其在终端上的输出都可以在这里找到: https ://dl.dropboxusercontent.com/u/32204435/USART.tar.gz

设置

我正在使用 Ubuntu 12.04.3 LTS 64 位。我已按照本网站上的说明安装了 arm-none-eabi 工具链:vedder.se/2012/07/get-started-with-stm32f4-on-ubuntu-linux/

信息与分析

据我所知,arm-none-eabi-g++ 编译器中对 newlib 的支持存在错误。我不明白为什么会出现错误,因为两个项目之间没有代码差异。newlib 中的函数(如 printf)在使用时也会产生类似的错误。在 USART 示例中,我限制了项目使用 newlib 的任何可能性(只有数据类型例外)。该错误似乎不是由 newlib 引起的,而是由缺少的硬件标头(或称为 newlib 存根)引起的(syscalls.h)。我尝试应用 syscalls.h 均未成功。

任何人都可以通过 C++ 支持帮助构建这个项目,甚至可以提供在 newlib 中正确使用代码的解决方案(比如 printf [或者,我知道一个大问题,来自 iostream 的 cout])?

我还在学习,我今年 17 岁,没有老师(自我驱动),所以似乎缺乏经验,我就是这样 :) 期待知识空白。

圣诞节快乐!

0 投票
1 回答
3840 浏览

c++ - 为 stm32f4 发现和 g++ 设置链接器

我正在尝试编译一些使用 USART 和 std 函数的代码,例如 printf() 用于 stm32f4 发现。首先,我使用 g++ 将所有代码文件编译成一个目标文件,但是当我使用链接器创建可执行文件时,链接器会抛出错误,描述它找不到在 startup_stm32f4xx.s 汇编文件中实现的任何函数。

我可以有一个 Makefile 模板表单,将所有源代码编译为目标文件,然后将其链接到 *.elf 可执行文件中吗?

另外,我将如何设置链接器以查看 newlib_stubs.c 以便可以在源代码中使用 printf()?

0 投票
1 回答
3169 浏览

c++ - arm-none-eabi-g++ 忽略表达式 stm32f4 中的无效字符“#”

我正在为 stm32f4 微控制器构建一个 makefile,其中包括所有外围库并包括一个系统调用(名称 newlib_stubs.cpp),其中将 printf() 重定向到 uart。在我开始将所有源代码构建到自己的目标文件中以链接到可执行文件之前,我已经编写了 makefile,以便一次性编译所有源代码,以证明 makefile 在此阶段有效,但它不起作用。这是生成文件:

该项目的源代码可以在这里找到:https ://dl.dropboxusercontent.com/u/32204435/stm324f-discovery_template_28Dec2013.zip

这是我从编译器收到的输出:

main.cpp 第 0 到 30 行:

我无法识别它们似乎来自的 main.cpp 文件中的任何错误。

什么是这个错误的外壳,如何解决?

0 投票
1 回答
1137 浏览

udp - Lwip 发送大于 MTU 的 udp 数据包,但我的电脑无法重组它们

我使用 lwip-1.4.1 和 stm32f407。
我的 lwip 可以向 pc 发送 udp 数据包,但是当 udp 数据包大于 MTU 时,我的 pc 将无法重新组装。
我使用wireshark 来检查这些数据包上下文,但是来自我的lwip 的分段udp 数据包看起来和正常的分段udp 数据包一样好。

以下链接是来自wireshark的记录:
https ://dl.dropboxusercontent.com/u/1321251/test.pcapng

谢谢

0 投票
2 回答
2219 浏览

c++ - 未定义的对 C++ 中函数的引用

我进行了搜索,但没有一个答案真正解释了我所看到的。

我有一个正确编译的文件,并添加了一个新的包含:

再次编译就好了。现在,我添加一个函数:

现在我得到:

这是 usart.h 文件:

如果我注释掉该行void usart_set_baudrate(u32 usart, u32 baud);,我会收到额外的警告:

所以它似乎至少在某种程度上正在发挥作用。C++ 有点新,所以不太确定我还能尝试什么。任何指针?

生成文件: