问题标签 [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.
embedded - 网络摄像头与 stm32 接口
我想使用 STM32F4 微控制器接收视频流,然后使用 rtsp 协议通过以太网流式传输。
我需要你们告诉我,哪种电路最适合与 STM32 连接。
我可以通过 USB OTG 将网络摄像头与 STM32 连接吗?(我对usb协议有基本的想法,但问题是我拥有的网络摄像头不受linux支持所以没有驱动程序的代码源,所以没有端点引用......)
是否可以通过调试 USB 流量来定义触发视频(流)批量传输的端点和特定于供应商的命令?
或者,您会推荐另一种电路,该电路提供易于与 STM32 接口的视频流。
我知道这是一种疯狂的事情,但我想问这会有多难?
让我知道你对这个项目的看法?
PS:项目的rtsp部分不是本题的目的。
提前致谢。
uart - stm32f4 uart波特率设置?
现在我有一个 stm32f4-discovery。我为uart制作了一个max232来连接stm32f4。我使用usb-rs232连接max232。我希望我可以通过uart通信stm32f4和PC。我在 Linux 中打开 putty。但是我有一个关于设置 uart 波特率的大问题。如果我设置相同的波特率,它就无法接收到正确的消息。我用示波器观察。最后,我设置了 7680(stm32f4) 和 3200(putty)。然后我可以得到正确的信息。但我不知道为什么它以不同的波特率工作。谁能告诉我为什么?这是我的代码,谢谢https://gitcafe.com/ctc8631/stm32f4-test-uart
operating-system - 循环调度中的任务行为不正确
我在 STM32F4DISCOVERY 板上运行 FreeRTOS,并且我有以下代码:
其中 vTask1 是这个函数:
vTask2 具有几乎相同的代码:
当我运行程序时,我看到 LED0 和 LED3 一直亮着(它们的切换对我的眼睛来说太快了,这很好),并且“共享资源”的 LED2 闪烁得非常快。问题是这样的:当我颠倒xTaskCreate
调用顺序时,我会遇到相同的情况,但 LED2 的闪烁行为不同,速度要慢得多。为什么会发生这种情况,因为任务应该具有相同的优先级并因此遵循循环调度?他们不应该得到相同的时间吗?为什么仅在以不同的顺序创建它们之后它们的行为会发生变化?
提前致谢。
triggers - stm32f405产生触发信号pwm
我正在尝试使用三个定时器生成相移 PWM 信号。
- TIM1 用作参考(以 1MHz 运行)
- TIM3 用作相移 TIM4 的触发器
- TIM4 用于产生由 TIM3 触发的相移信号
总结:TIM1 --- 触发器 --> TIM3 --- 触发器 ---> TIM4
信号应如下所示:
这是我当前的代码。参考在 1MHz 下正确运行。但是触发信号现在不起作用。错误应该在 initReferenceTimer() 或 initReferencePWM() 函数中的任何位置。到目前为止,它无法像上面提到的那样生成触发信号。所以我无法测试相移信号是否会被正确触发。
有人对此有好主意吗?
为了调试,我还将触发信号绑定到输出引脚。
c - FreeRTOS - STM32F4 上的堆栈损坏
我目前遇到问题,我认为在 STM32F407 目标上运行 FreeRTOS 时某些配置错误的堆栈损坏。
我用 gcc 查看了 STM32F4 上的 FreeRTOS 堆栈损坏,但没有得到任何帮助。
应用程序运行两个任务并依赖于一个 CAN 中断。工作流程如下:
- 两个任务 network_task 和 app_task 与两个队列 raw_msg_queue 和 app_msg_queue 一起创建。CAN 中断也已设置。
- network_task 具有最高优先级,并开始无限期地等待 raw_msg_queue。
- app_task 是下一个并开始在 app_msg_queue 上等待。
- 然后 CAN 中断因外部事件而触发,将 CAN 消息添加到 raw_msg_queue。
- network_task 唤醒,处理消息,将处理后的消息添加到 app_msg_queue,然后继续等待 raw_msg_queue。
- app_task 唤醒,我遇到了一个硬故障。
问题是,由于最终用户的便利性和可移植性,我已经分两步包装了 app_task 对 xQueueReceive 的调用。app_task总的函数链是它调用network_receive(..) -> os_queue_receive(..) -> xQueueReceive(..)。这很好用,但是当它从 xQueueReceive(..) 返回时,它只能在返回到看似随机的内存位置之前返回到 os_queue_receive(..) 并且我得到一个硬故障。
堆栈大小应该足够,并且两者都设置为 2048,所有大型数据结构都作为指针传递。
我在两个 STM32F407 上运行我的代码。FreeRTOS 的版本为 7.4.2,是撰写本文时的最新版本。
我真的希望有人可以在这里帮助我!
stm32 - stm32f4discovery - OpenOCD - telnet上传演示程序
我在尝试将演示程序上传到新的 stm32f4discovery 板时遇到问题,这就是我正在做的事情:
- 将板子连接到电脑
- openocd -f 板/stm32f4discovery.cfg
远程登录本地主机 4444
我究竟做错了什么 ?我试过闪存保护,stm32f2x 解锁但响应仍然相同:'闪存写保护',我错过了什么?我正在使用来自'Project/Demonstration/Binary'的包'STM32F4-Discovery_FW_V1.1.0'的st.com的预编译演示程序。
c++ - LoopFillZerobss 对 main 的引用未定义
我正在为 STM32F4 微控制器编译一个 c++ 应用程序。我的所有代码都成功编译,但链接步骤失败并出现以下错误:
我熟悉未定义对主要错误的引用的典型原因,即尝试在没有主要存在的情况下编译应用程序。但是,我确实有一个 main.cpp,当然,其中还有一个 main 函数。它编译为 main.o,并与编译期间创建的其他目标文件链接。
我正在交叉编译到 STM32F407 上,并且正在运行裸机。
有人对此有任何见解或以前见过此错误吗?我看到 LoopFillZerobss 函数的唯一地方是电路板的程序集启动文件。
c - STM32中的单次操作持续时间是多少
我做了简单的延迟函数:
我想用一些值来预测单次执行的持续时间。我知道这是个坏主意,但我不需要准确的时间,也不会被打断。
我正在使用 STM32F405 @ 168 MHz 和 8 MHz 外部晶振。
到目前为止,我注意到用 0x80 0000 调用它会给我带来大约半秒的延迟。
build - 为 STM32F4-Discovery 编译和构建 avconv/ffmpeg 的 Slim 版本 - armv7 thumb 1/2 架构
这是我第一次尝试在 Stack Overflow 上发帖寻求帮助。
我的项目:使用带有 STM32F407VGT6 芯片的 STM32F4-Discovery 和 FPv4-SP 和相机/LCD 外围设置,我需要以 QVGA 录制视频并输出为压缩比至少为 25:1 的 MPEG-4 格式。
我已经确定了所需的编解码器库(avconv,除非 ffmpeg 证明更有用),现在我正在尝试构建编译器选项,为我提供一个能够在 ANSI-C 芯片上执行的轻量级版本和拇指架构。
该板的空间非常有限(192KB SRAM 和 1MB 闪存 - 有扩展的可能性,但最好只使用我所拥有的),目前任一库的“主要”可执行文件都超过 1MB。
从我尝试过的不同解决方案的输出来看 - 似乎很多编译器选项都没有成功应用于构建。所以我的问题是:
1) 是否可以仅使用 rawvideo 解码器、mpeg4 编码器和最基本的实用程序将任一库编译到所需的空间?如果没有,有没有估计需要多少?
2)我花了很多时间在互联网上搜索,但似乎没有人尝试过 - 有没有人可以告诉我其他情况?
我手头有我的配置/构建脚本,任何人都想看看我是否错过了一些基本的东西。只要问,我会通过电子邮件发送它,我不想让线程变得比我看似冗长的调查已经拥有的更多。
我认为这两个库都不太可能损坏。我一直在 Ubuntu 12.04 32 位上尝试这个。
我是一名软件实习生,非常感谢任何可用的帮助。
最后一个问题,如果我的解决方案被证明不可行,是否有另一个开源 mpeg4 压缩库可以为嵌入式 ARMv7E-M/Thumb 集架构轻松编译?
编辑:这是以前未包含的构建命令。
这是我获得并修改的脚本。它最初是为 ARMv7-a 成功构建的,它不会在 ARMv7e-m 芯片(发现板)上执行。
macos - 为 STM32F4 Mac 编译
再会,
我刚买了一个 STm32F4 并且能够加载位于内部的示例 .hex 文件: https ://github.com/mechoid9/STM32F4
我已按照此站点的说明进行操作:http: //jeremyherbert.net/get/stm32f4_getting_started
它解释了如何编码,但没有说明如何实际执行makefile。我运行它,它给了我一大堆错误:
生成文件如下所示:
我什至不知道如何执行它来构建我的十六进制文件等。