问题标签 [stm32f7]

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

stm32 - NUCLEO-F746ZG UART3

我正在尝试将 NUCLEO-F746ZG 中的 UART3 与 TrueStudio 一起使用。USART3 连接 ST-LINK 支持虚拟 COM 口,但是现在不行了。我没有示波器,我真的很想通过超级终端看到打印消息,就像一个实时术语。

我搜索了这个问题,发现很多用户都很难过。

最后,我从以下网站找到了 STM32CubMX 中的 UART 示例解决方案。如果我复制 syscall.c,那么它在 UART 示例中可以正常工作。

https://community.st.com/s/question/0D50X00009XkXDcSAN/problem-with-uart-example-on-nucleof746zg

以下是来自 STM32CubeMX 的 UART 示例代码。目录:STM32Cube_FW_F7_V1.15.0\Projects\STM32F746ZG-Nucleo\Examples\UART\UART_Printf。

但是,我使用 STM32CubeMX 生成了代码。我只使用了 USART3 并确认其中有 syscall.c。但尽管如此,我还是看不到打印消息。如果有人解决了这个问题,如果他们分享,我将不胜感激。

以下是我使用STM32CubeMX生成的代码。

0 投票
2 回答
357 浏览

stm32 - STM32F746ZG - 如何更新闪存中 256 KB 扇区的某些部分

我正在使用 STM32F103 并将我的代码移动到 STM32F746。F103 能够以每页为基础更新 1KB 和 2KB 的 Flash。我有 STM32F746ZG Nucleo-board,我的代码很大,flash 占用了 0x08038000。我想将其他小型应用程序保存在 0x08040000(sector_5) 上。该应用程序由几个 2KB 大小组成。我需要在 Sector_5 中存储多个应用程序,而 M7 不能以 1KB 或 2KB 为增量使用 Flash。

以下是 STM32F746ZG 的扇区大小。

STM32F746 由扇区大小为 256 KB 的闪存组成,从扇区 5 到扇区 7。如果我想使用 Sector_5,我必须擦除整个一个扇区。如果我只想更新 Sector_5 前面的大约 2KB 并保持 2KB 之后的区域完好无损怎么办?这意味着我只将内容从 0x08040000 更新到 0x08042000。我必须保持从 0x08042001 到 0x0807FFFF。

我什至无法将 256 KB 的闪存复制到 RAM。因为 F746 只有 240KB 的内部 RAM,而我的许多任务已经使用了 RAM,所以没有足够的 RAM 来复制一个扇区。在这种情况下,请告诉我如何在闪存中更新部分 256KB。

0 投票
2 回答
532 浏览

stm32 - cortex-M3 和 cortex-M7 的 SRAM 消耗

我从 M3 迁移到 M7。M3 使用 STM32F103VE,具有 64 KB 的 SRAM。M7 是 STM32F746ZG,它有 240KB 的 SRAM。我将大部分 M3 代码移至 M7。附加 LWIP 用于 M7 中的以太网功能。但我发现堆内存不足并增加如下。

使用 M3 时,使用了以下堆大小。

如果我使用M3的堆大小,就会出现问题,因为堆内存不足。如果我将堆大小设置为 45*1024,则以太网功能不起作用并且不会增加堆内存。我知道增加堆会减少堆栈。不过,虽然相比 M3 增加了 3 倍左右的 Heap,但使用 MALLOC 功能的余地仍然不多。

尽管 M7 的内存是 M3 的四倍,但我不明白为什么会有这么多的内存损失。如果有人有过这样的经历,请给我好的建议。我正在为 STM32 使用 FreeRTOS、LWIP 和 HAL。我想充分使用 Malloc 功能。

0 投票
3 回答
8998 浏览

stm32 - 如何更改闪存的起始地址?

我正在使用 STM32F746ZG 和 FreeRTOS。flash的起始地址是0x08000000。但我想把它改成0x08040000。我已经通过谷歌搜索了这个问题,但我没有找到解决方案。

我更改了链接描述文件,如下所示。

如果我只更改它并运行调试器,它就有问题。如果我将 VECT_TAB_OFFSET 从 0x00 更改为 0x4000,它工作正常。

但是如果我不使用调试器,它就不起作用。这意味着它仅在使用 ST-Linker 时有效。

如果您知道解决方案,请告诉我。提前感谢您的回复。

0 投票
1 回答
694 浏览

timer - STM32F7 上定时器的频率限制问题

我在将 STM32F7 开发板上的定时器设置为 500 Khz 时遇到问题。由于某种原因,我似乎最高在 370kHz 左右。'正在将带有范围的 GPIO 引脚切换到输入,并简单地更改定时器上的周期以监视正在发生的事情。

我正在使用 CubeMX 生成我的项目文件并初始化我的计时器:

然后我以中断模式启动定时器:

然后在这段时间过去后切换 GPIO 引脚:

GPIO 引脚设置为:

但是,我玩弄Period了计时器,得到了以下结果:

我希望在 215 周期内获得 500Khz,但事实并非如此。我的设置有什么问题吗?

0 投票
1 回答
628 浏览

c - 使用单帧缓冲区的动画怎么可能?

我正在使用设备 STM32F746。我知道它有一个硬件 2D 图形加速器。我知道如何使用双缓冲来制作动画。但是根据这个 https://www.touchgfx.com/news/high-quality-graphics-using-only-internal-memory/

他们声称他们只使用一个帧缓冲区来制作动画。

这怎么可能以及使用 STM32F746 使用了哪些技术?

0 投票
4 回答
6805 浏览

stm32 - 在STM32板上运行后如何更改UART波特率?

我正在使用STM32F746ZG和使用五个UARTs. All UARTs工作正常。USART有人可以告诉我在初始化后更改波特率的程序吗?我正在使用波特率USART6并对其进行初始化。9600启动后,没有任何通过USART. 我想将波特率从9600 to 57600 or 115200. 对于这种变化,我打电话给HAL_UART_DeInit()MX_USART6_UART_Init_57600()它不起作用。如果我没有改变波特率,它工作正常。但是如果我改变波特率,我就无法接收数据USART. 如果有人知道解决方案,请告诉我。

以下是我的代码。

我打电话Change_UART(),但它不起作用。

0 投票
1 回答
1919 浏览

stm32 - STM32上的单元测试

我正在寻找有关如何在我的 STM32F7 平台上进行单元测试的建议。人们过去做了什么?你有哪些恐怖故事?你将做点什么不同的?我目前的计划有什么问题?

我的设置

  • 带有定制载体 PCB 的 STM32 Nucleo-144
  • arm-atollic-eabi-gcc编译器(暂时没有 C++)
  • 使用 Atollic TrueStudio 作为 IDE
  • 从 Ubuntu 16.04 完成的开发
  • 在板上运行 FreeRTOS

我的测试计划

有不同级别的测试;我专门谈论对不依赖于外部硬件的库/功能集进行单元测试。诸如“我的环形缓冲区实现是否正确处理滚动而没有内存泄漏”和“此位移操作是否导致结果变量中的正确字节序”之类的东西?所以我专注于这些类型的测试。

  • 将我的项目转换为使用 C++ 编译(以及所有相关的extern C必需项)
  • 将我的代码重构为“库”部分和“应用程序”部分。
  • 构建googletest(这是我们用于系统其他部分的)并将我的库链接到其中进行测试。
  • 在通过 Atollic 运行调试会话时在设备上运行单元测试。
0 投票
1 回答
149 浏览

timer - STM32F7-有没有办法在输出比较模式下同步两个不同定时器的输出?

我的处理器是STM32F746ZGT6,我希望使用TCD132DG,所以我需要生成两个不同频率的同步时钟脉冲(一个是2 MHz,另一个是500 KHz),所以我在输出比较模式下使用了两个不同的定时器。问题是这两个脉冲有相移。在 TCD132DG 的数据表中,允许的最大时移为 60ns,而脉冲的时移为 240ns。

谢谢,阿米尔·雷扎

0 投票
1 回答
191 浏览

c - 堆栈粉碎检测到 STM32f7

我很想在 STM32F779I 中编写 micropython 代码。我在运行应用程序时没有运行任何检测到的代码堆栈粉碎。

这是我的内存布局

这是我运行 micropython 的方式: