问题标签 [stm32f4]

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 投票
0 回答
393 浏览

iar - STM32F4 外部中断在跳转到应用程序后不起作用

我已经编写了引导加载程序代码以从 0x08000000 跳转到 0x08008000 并且它正在跳转到应用程序。在应用程序中 PA10 被配置为下降沿的外部信号中断,当我从引导加载程序跳转时外部中断没有到来。当我在地址 0x8000000 没有任何引导加载程序的情况下直接加载我的应用程序时,我会收到中断。当我使用引导加载程序时,没有出现外部引脚中断。我已经验证了我的 ISR 它在闪存中的地址 0x8008000 中。

引导加载程序代码:sudo 代码

0 投票
1 回答
457 浏览

wireshark - DHCP 服务器不发送报价

我正在使用 STM32f 微控制器为 ENC28J60 创建 TCP IP 堆栈。一切正常。封装没问题。我发送的包裹,看到这样的线鲨:

Wire Shark 截图

但是 DHCP Offer Package 不是由服务器发送的。怎么了?

谢谢

0 投票
3 回答
1443 浏览

stm32 - STM32F4 SPI1 工作,SPI5 不工作?

我有一个 STM32 Nucleo-F410RB 开发板,并且能够让我的外部 DAC 与 SPI1 一起工作,包括忙等待和 DMA。然后,我设计了自己的定制 PCB,构建了它并能够对其进行闪存。在设计阶段,我从使用 SPI1 切换到 SPI5,因为我需要 SPI1 引脚来实现其他功能。但我无法让 SPI5 在我的新设计中工作 - SCK 和 MOSI 引脚上没有信号。当我将代码更改为使用 SPI1 时,我在各自的 SPI1 SCK 和 MOSI 引脚上看到了信号。

我回到我的 Nucleo 板并遇到同样的问题 - SPI1 工作正常,但 SPI5 根本不工作。我将 Eclipse 与 ARM GNU 编译器和最新版本的标准外设库(不是 HAL)一起使用。

SPI初始化函数:

SPI写功能:

此代码不起作用,但是当我将所有 SPI5 引用更改为 SPI1 并将 PB3 用于 SCK 并将 PB5 用于 MOSI 时,SPI 正在工作。我已经检查了 SPI 控制寄存器,它们看起来像是为 SPI5 正确配置的,所以我开始不知所措了。

为什么 SPI1 在我自己的设计和 Nucleo 板上都能正常工作,但 SPI5 在任何一个板上都不能工作?

0 投票
1 回答
698 浏览

stm32f4 - STM32如何使用游戏手柄?

我是使用 STM32 的初学者,现在我正在尝试使用 STM32F4 移动机器人。

现在我可以通过控制电机、编码器等设备来移动机器人。

但是,我对阅读游戏手柄(USB 的 HID 设备)一无所知。

我正在尝试这个,因为我想通过游戏手柄控制机器人。

STM32F4可以读取使用USB的游戏手柄吗?

如果有关于这个问题的页面,恐怕你告诉我网址。

谢谢你。

0 投票
1 回答
1545 浏览

stm32 - 在STM32F407中读取PWM信号

我正在使用 STM32F407 发现做四轴飞行器。我终于能够稳定它。现在我正在尝试使用 RC 接收器,这样我就可以控制我的四轴飞行器运动。有没有办法读取我的 RC 接收器通道的 PWM 信号?此外,我的 RC 接收器支持 PPM,据我了解,它接收到一个占空比强文本数据包,但仍然不知道如何接收它。

0 投票
1 回答
2343 浏览

bluetooth - 为 STM32F4 寻找开源蓝牙协议栈 (HCI)

我是蓝牙开发新手,我希望通过 uart 将 ST STM32F4 MCU 连接到蓝牙模块。

MCU 必须具有 HCI 实现来配置和管理蓝牙模块。

是否有关于在 ST STM32F4 上实现上述 HCI 的开源蓝牙堆栈的任何建议?

谢谢!

0 投票
1 回答
1463 浏览

multithreading - FreeRTOS Mutex 具有相同优先级的多个任务

我在使用 FreeRTOS 二进制互斥体时遇到了一些问题。在我的应用程序中,有多个线程(任务)具有相同的优先级,其中两个访问互斥锁获取和互斥锁释放中的文件 I/O 函数。

根据某些时间安排,一项任务正在使另一项任务挨饿。那可能吗?

FreeRTOS 会考虑任务等待资源的时间?

谢谢

0 投票
2 回答
1058 浏览

c - STM32 F411RE Nucleo SPI 支持和编程 PlayStation2 控制器

欢迎。几天来,我试图从 STM32F411RE 核上的 PS2 PAD 获得正确答案。我使用 SPI 和 USART 来接收消息。时钟频率设置为 8MHz,在 SPI 预分频器 64 配置中为我提供 125KHz(或 KBits / s)。第一位取自 LSB,CPOL 参数为 1,CPHA 为 2。NSS 软件控制,设置为 GPIO 输出(PA4-CS 引脚)。我使用 PA5 引脚作为 SCK(时钟)PA6-MISO、PA7-MOSI。SPI 设置为全双工主模式。(USART 异步和 9600Bits / s 但它只是用于在 PC 上接收消息)。我要补充一点,微控制器在 HAL 库中运行。在 main.c 文件中:

CS LOW - 将“attetion”行设置为状态 0,将 CS_HIGH 设置为状态 1。功能发送命令和返回数据(MISO-MOSI):

发送字节串的函数:

在主要功能中:

发送信息后: 0x01 0x42 0x00 0x00 0x00 如果没有按下按钮,我应该得到 0xFF 0x41 0x5A 0xFF 0xFF。当我得到这样的值时,应该在 3 和 4 字节出现有关按下的键的信息:65、255、255、255、255 即 0xFF 0xFF 0xFF 0xFF 0xFF。奇怪的是,第二个发送的字节对应于第一个接收的字节。另外一点是,如果您按下“模式”键,值 65 将更改为 115 (0x73),而其他值仍保持不变。我提供支持页面的链接:

PlayStation 2 控制器接口

我还要补充一点,这正是这个 PAD:

链接到页面

也许有人想出了一些主意。请帮我。:)

0 投票
0 回答
905 浏览

c# - 通过 USB 与 STM32F4 微控制器的通信延迟

我正在开发一个 C# 开发项目,该项目旨在通过一组 Optitrack 相机(红外运动捕捉系统)控制飞行机器人。这个概念非常有效,你从摄像头系统中获得一个位置,我们的应用程序可以访问这些数据,我们可以控制机器人。

我相信问题出在沟通链上。我们有一根 USB 电缆将我们的 PC 连接到基于 STM32F4 的电路板,该电路板充当桥接器,借助嵌入式 NRF 模块(nRF24L01+ 芯片)将通过 USB 接收到的所有内容简单地发送到无线电。这个机制是双向的(NRF -> USB -> PC)。该板使用 FreeRTOS 在 C 下运行。电脑运行 Windows 10。

在 PC 端,我们使用 ST 的官方 STM32 VCP 驱动程序 1.4。在板卡固件上,我们在 STM32F4 上有这个用户制作的 VCP 库:https ://stm32f4-discovery.net/2014/08/library-24-virtual-com-port-vcp-stm32f4xx/ 上没有队列桥板除了来自无线电模块本身的桥板,也可能是 STM32 VCP 驱动器本身。我检查了,这个驱动程序中有一个循环缓冲区用于输入和输出消息。使用 JSCOPE,我可以实时可视化这个循环缓冲区的行为方式,而且我从未见过发生溢出。

我的问题来自突然出现延迟的事实。该系统可以完美运行数十分钟(10 到 20 分钟之间),然后可以明显感觉到延迟,这会使控制器振荡。当我进行第二次飞行时会发生这种情况。

已尝试以下方法: - 重新启动 C# 应用程序 - 在调试模式和独立模式下运行 C# 应用程序 - 更换 USB 电缆(更短) - 更换 USB 端口 - 更换计算机 - 重新安装 ST VCP 驱动程序 - 大幅降低通信频率(控制回路)

当问题出现时,上述解决方案都不起作用,延迟完全保持,并且以上都没有证明它更可靠。

在 C# 应用程序上,我在每次飞行前重置所有通信列表。SerialPort 端口对象(来自 System.IO)也重置其缓冲区(DiscardOutBuffer、DiscardInBuffer、BaseStream.Flush 方法)

我找到了一个“hack”来让它工作,但这不是我们想要的最终解决方案。“hack”是简单地物理断开/重新连接连接板的 USB,充当桥接器。在此操作之后,延迟消失。

所以我的问题是:

  • 什么可能带来这种延迟,知道它看起来并不依赖于应用程序,也不与频率相关(带宽)。

  • 什么可以解释为什么在拔下/插入桥接板时它会消失?

我知道这个问题是关于一个大项目的,从外面可能很难理解。如果需要,请随时向我询问更多详细信息。

干杯,

马克

0 投票
2 回答
887 浏览

c - scanf() 缺少第一个字母

我想在带有 IAR 编译器的 STM32F401RE_NUCLEO 中使用 scanf() 函数。

这是我重载的 fgetc 函数。

我在 main 函数中使用 scanf ,如下所示。

如果我从终端输入“123”,则打印“23”。

%d, %u, %f 相同。

但是,只有 %c 可以正常工作。

我怎么解决这个问题?