问题标签 [stm32h743]

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

stm32 - STM32 - 保留一段FLASH存储器

按照这篇文章的指示,我可以从专门用于校准数据的 FLASH 部分保留和写入(和读回)。

问题
但是,当我重新编程设备时,IDE 在编程之前会清除整个内存,我们会丢失所有数据。由于我们处于调试周期,我们不断地重新编程,并且每次都必须将校准写回作为第一步。

有没有办法告诉 IDE 只擦除与程序数据对应的某个内存区域?谢谢。

0 投票
1 回答
194 浏览

stm32 - STM32H7 在 OBFlash 中更改 boot1 地址

我在更改闪存选项字节中的 boot1 地址时遇到问题

我想更改 boot1 地址,允许我在引导加载程序模式(系统内存)或用户代码模式(闪存)下启动而不使用跳转。

我目前正在 STM32H743 EVAL 板上进行测试

这是更改地址的代码,它似乎没有改变任何东西

谢谢,

加布里埃尔

0 投票
0 回答
82 浏览

arduino - Nucleo-H743Zi 上的 SPI 时钟工作不正常

我是使用 STM32 微控制器的新手。当我分析 SPI 通信时,我得到时钟信号,您可以在下面的图 1 中看到。时钟在 1.333 MhZ 和 2 Mhz 的频率之间跳跃。我还将 STM32DUINO 与基本的 Arduino SPI 片段一起使用,并与 Arduino Uno 一起测试它。使用 Uno,时钟可以正常工作。我还将我的 STM32 板的 SPI 通道从 SPI1 更改为 SPI3。两者都不起作用。

我使用了 CubeIDE 拥有的普通配置器(图 2)。这是我的 STM32CubeIDE 代码:

Nucleo-H743ZI 上的 SPI

SPI 设置

提前谢谢你的帮助!

0 投票
0 回答
251 浏览

c++ - SDRAM STM32H7 ALIENTEK BOARD - 读/写错误

上个月我一直在尝试利用这个 SDRAM Ram 芯片https://www.digikey.com/en/products/detail/winbond-electronics/W9825G6KH-6/5001919 来存储嵌入的 STM32H743II 的帧缓冲区Alientek 板。

我一直在尝试将这个提供的示例用于 STM32H743-Eval 板https://github.com/STMicroelectronics/STM32CubeH7/tree/master/Projects/STM32H743I-EVAL/Examples/FMC/FMC_SDRAM_DataMemory作为基本代码,但一直不成功。我可以看到创建了初始 RAM 地址并将其设置为值 0xFFFFFDFF,但任何写入值的尝试都失败了,没有发生硬故障,但地址从未更新。

我在下面包含了我的 main.c 文件以及内存资源管理器的屏幕截图,并且可以提供任何其他所需的代码。

内存浏览器截图

0 投票
1 回答
170 浏览

c - 优化加权移动平均线

环境:STM32H7 和 GCC
处理数据流:每 250 我们从 SPI 接收 1 个样本
我用 256 个样本做一个“三角形”加权移动平均,就像这样,但中间样本的权重为 1,它在它周围形成一个三角形
我的样本存储在uint32_t val[256]循环缓冲区中,它适用于 auint8_t write_index
样本为 24 位,样本的最大值为0x00FFFFFF

我必须在250 us 的时间跨度内进行计算,但我用调试 GPIO 引脚测量“moy”部分需要252 us
代码在这里
模拟有趣的事实:如果我在接近尾声时移除(uint32_t)演员表,则需要 274 us 252 我们

我怎样才能更快地完成它?

我正在考虑使用uint32而不是floatfor coef(例如乘以 1000),但我uint32会溢出

0 投票
0 回答
49 浏览

usb - 在 STM32H7 上启用 Icache 损坏 USB FS VCOM 端口数据?

我在 FS 模式下使用带有 USB 的 STM32H743 作为 VCOM 端口“CDC”,

我定期发送一组 1024 个值,每个值都用 4 个字符 + 每个值和下一个值之间的空格表示。

每组以字符串标题开始,以新行结束。

我每秒发送此数据 19 次

当我启用 Icache 时,数据已损坏,某些字符在传输过程中丢失或重复。

此后,您可以找到两个样本,用于在不使用 Icache 时正确接收数据,以及在启用 Icache 时损坏数据。

我的主机应用程序是在 Windows 10 操作系统上运行的 Tera Term

我该如何解决这个问题?

损坏的文件

正确的数据

在这里很难看出差异,但在文本编辑器或比较应用程序中会很清楚

损坏数据的一些示例“37503750”而不是“3750 3750”和“37750”而不是“3750”

0 投票
1 回答
273 浏览

stm32 - STM32H723- DMA DAC 仅适用于 const 吗?

在 STM32G4 中,我能够设置 DAC DMA,以便我可以使用常规变量(即uint8_t数组)。但是,当我尝试将代码移植到 H723 时,DAC DMA 将无法工作,除非它使用const uint8_t在运行时之前设置的常量变量(即数组)。我的应用程序需要对数组进行运行时更改。数组的指针初始化似乎不起作用。我想知道是否有办法解决这个问题?我是否坚持使用常量变量?谢谢!

EDIT1:DAC DMA 和 TIMER 的当前设置

Timer15 配置:

DMA 配置:

在主函数中:

此设置不起作用,但只需初始化dac_data1const uint8_t并预定义它,DMA 就可以工作。

0 投票
0 回答
362 浏览

embedded - 交换闪存库时如何防止STM32H7崩溃

我正在使用具有两个闪存库的 STM32H753。对于我的固件更新,我使用了银行交换功能,因此 mcu 引导到正确的版本。

当我交换银行时,微控制器崩溃。没有硬故障或任何其他异常。调试器告诉我,PC 位于 0x72c269e,SP 位于 0xbf00d7b4,但这些地址之前有所不同,我假设这些地址是随机的。

最终看门狗启动并重置MCU,然后交换银行,所以它确实有效。当我换回银行时,没有崩溃,一切正常。

这是执行此操作的代码:

如果我在 while 循环之前放置一条 bkpt 指令,它会被命中两次(如果我继续,则两次都不会崩溃)。
如果我在 while 循环之后放了一条 bkpt 指令,那么第一次交换时它不会被命中。

参考手册(4.3.13)告诉我们:

  1. 如果尚未解锁,则解锁 OPTLOCK 位。
  2. 在 FLASH_OPTSR_PRG 寄存器中设置新的所需 SWAP_BANK_OPT 值。
  3. 通过设置 FLASH_OPTCR 寄存器中的 OPTSTART 位来启动选项字节更改序列。
  4. 一旦选项字节更改完成,FLASH_OPTSR_CUR 包含预期的 SWAP_BANK_OPT 值,但 FLASH_OPTCR 中的 SWAP_BANK 位尚未修改,并且存储库交换尚未生效。
  5. 强制系统重置或 POR。当复位上升时,bank swapping 有效(FLASH_OPTCR 中的 SWAP_BANK 值更新)并执行新固件。

我认为我这样做是正确的。我还检查了勘误表,在带有存储库切换的旧芯片中存在问题,但我使用的是最新V版本。

我希望有人可以给我一个提示。

0 投票
2 回答
43 浏览

stm32 - STM32H743VI在不可闪状态下随机跳

我们在带有 JLink 调试器的定制板上使用 STM32H743VIT6。处理器突然跳到无法再刷新ECU的状态。开发板正在运行,但 JMem 和我们的 IDE(uVision)都无法访问或检测控制器。到目前为止,还有其他人遇到过这种行为吗?谷歌也没有帮助。

0 投票
0 回答
17 浏览

stm32h743 - 无法擦除 STM32H753 芯片

我们正在为盲人构建盲文显示器,对于该设备,我们正试图通过我们板上的 SD 卡提供 IAP。

我的问题是,每当我们尝试擦除或编程 STM32H753 芯片时,程序会在 HAL_FLASHEx_Erase 函数中第一次出现 FLASH_WaitForLastOperation 时从调试器中出来。Keil 报错

无法访问目标。关闭调试会话

我尝试评论 Erase 函数,然后运行代码。但是它在编程功能中给出了同样的错误。

我没有使用我的代码,而是尝试了您的评估板(STM32Cube_FW_H7_V1.5.0)附带的代码,但同样的事情发生了。

我已经更换了两次芯片,但在静脉中。