问题标签 [stm32cubemx]

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

c - ADC值太高,端口串口读不出来

您好,我通过使用 CubeMX 和 Hal lib 获得了 STM32F01C8T6 的代码:

ADC 输入为 3.3V,端口串行测试正常。

在调试模式下的值为:536880200,在端口串行中只打印像 !,d@)_+( 这样的坏词

引脚和 ADC 配置:[1]:https ://i.stack.imgur.com/YubLM.png

完整的 main.c 代码:

ADC 值在调试模式下很高,我无法在端口串行中读取它,我该如何解决?

谢谢 。

0 投票
0 回答
176 浏览

c - 如何检测USB何时断开?

我使用虚拟 com 端口在微控制器和计算机之间进行通信。
我有MK。stm32h743由自己的3.3V电源自供电。在立方体的帮助下,我提出了一个虚拟 com 端口。您如何理解 USB 已与设备断开连接?
当你连接Usb时,它调用“CDC_Init_FS”并且hUsbDeviceFS.dev_state设置为3,对应于“USBD_STATE_CONFIGURED”。
但是当您断开 USB 时,没有回调“HAL_PCD_DisconnectCallback (PCD_HandleTypeDef * hpcd);”

为什么“HAL_PCD_DisconnectCallback (PCD_HandleTypeDef * hpcd);” 禁用USB时不调用?

我无法跟踪 Vbus 电压。所以我这样做了:

你好。

我遇到了 USB 正常工作的问题 - 断开 USB 电缆并再次连接后,带有 CubeMX HAL 的 USB CDC(虚拟 Com 端口)。

对于测试,我使用 STM32CubeIDE 和 STM32CubeMX创建了一个类似于此处介绍的项目 - https://www.youtube.com/watch?v=AYICE0gU-Sg 。

程序上传到STM32后,将while(1)循环中的数据写入USB口。

数据被写出,在 Windows 7 (Tera Term) 中可见。

当我断开 USB 电缆(OTG FS 端口)并重新连接时,Windows 会发送消息“USB 设备无法识别”。

没有接收到数据。

为了传输数据和识别电缆,我必须在板上进行重置。

硬件:

单片机:STM32H743VIT

软件:STM32CubeIDE v1.2

固件包:STM32Cube_FW_H7_V1.7.0

如何使 USB 设备始终正常工作(断开电缆并重新连接后),以便被 Windows 识别并传输数据?

0 投票
0 回答
162 浏览

stm32 - 使用 STM32 HAL 库(HAL_NOR_Program 和 HAL_NOR_Read 函数)对 S29GL064S NOR 闪存进行编程时出现问题

使用自己设计的定制板,我无法对 S29GL064S NOR Flash 的内容进行编程。在调用函数时,我对原理图和布局非常有信心

HAL_NOR_Read_ID(&hnor1, &NOR_Id)

我得到以下结果

在此处输入图像描述

根据 NOR Flash 数据表,这些值似乎符合预期(链接在这里

当我尝试使用此处编写的一小段代码对内存内容进行编程时:

当我运行这段代码时,我得到的结果如下:

在此处输入图像描述

出于某种原因,我似乎在我的“数组”的每个单元格中都得到了“ii”的值,而这显然是我的代码中没有要求的。我从来没有设法读回值“0xbeef”。我浏览了函数“HAL_NOR_Program”和“HAL_NOR_Read”的内容,它们似乎与数据表中的要求非常一致(表 10.17“命令定义”)。

在寻求帮助之前,我真的试图深入了解这一点,以确保我做的一切都是正确的,但我真的迷路了。有人知道我的代码有什么问题并可以帮助我修复它吗?

这是我在 STM32CubeMX 中的 NOR Flash 配置的打印屏幕: 在此处输入图像描述

我希望它足够清楚,如果您需要更多详细信息,请不要犹豫。

在此先感谢您的帮助!

0 投票
0 回答
720 浏览

usb - STM32 USB CDC Win 10 部分数据丢失

我使用 USB 设备 - STMicroelectronics 开发板。使用支持 USB 硬件的固件。它作为 USB 串行端口工作。

在主机 PC(win10 21H1)上,我使用串行终端(“Tera Term”)从我的设备获取数据。我使用标准的 windows usbserial 驱动程序。

我的设备正在发送数据。如果数据流很小(1-2-5 kByte/s)——一切正常。但是如果我加快速度(流量大约 100 kByte/s 或更多) - 我会看到数据丢失。

我与意法半导体的支持人员进行了沟通。我们检查了问题。我们看到了 USB 与 USB 分析仪的通信。我们认为,这不是windows方面的问题。

此外,我使用自定义端口读取实用程序。数据完整性问题仍然存在。

在收到的数据中,我看到丢失了 64 或 128 ...... 64 字节的倍数。64bytes - 就我而言,端点大小。有关更多信息,请参阅链接数据。

我在 CubeMx 中创建 USB_test 项目。并添加用于向 PC 发送数据的简单代码。如果先前的 CDC 传输完成,则循环数据发送。增加延迟是不可接受的:第一,不是100%消除损失;其次,它对信道的带宽有不好的影响。

在 CDC_TransmitCplt_FS() 中,我闪存 is_transmit。

来自 ST 的信息支持通信和 USB 分析仪日志文件。 https://drive.google.com/drive/folders/1CvTPfaFGmcFxD4V5zTvsVE6U26DNwG2v?usp=sharing

我如何解决这个问题?我需要从设备到主机 500 kB/s 或更多的数据流。

最好的问候,安德烈。

0 投票
2 回答
64 浏览

c - 板载 LED,直到我单击重置后才会亮起,数据接收/传输无法正常工作

我刚开始使用STM32F407GZ,一开始我想打开/关闭板上的LED。我正在使用 CubeMX 生成初始化代码。我可以接收和传输数据,但无法正确接收到数据。此外,在我单击重置按钮之前,LED 不会亮起。当我单击重置按钮时,LED 会亮起,但我停止接收和传输数据。

这是代码:

0 投票
0 回答
66 浏览

driver - STM32 STMems_Standard_C_drivers stts751 示例和 hi2c1 参考

在“驱动程序”文件夹中:

https://github.com/STMicroelectronics/STMems_Standard_C_drivers/tree/master/stts751_STdC

在涉及 stts751 MEMS 温度传感器的项目中包含 Mems Sensor 的驱动程序文件(.h 和 .c)。在“示例文件夹”中,有一个示例显示了如何将项目坦克中的标准 C 驱动程序集成到“stts751_read_data_polling.c”文件中。我发现它们有很好的文档和解释,最终我有了一个工作的 STM32CubeMx 项目,其中包括 stts751_reg.c 和 stts751_reg.h 以及从我的主文件中的 stts751_read_data_polling.c 复制相关代码。

我的问题是:

在 stts751_read_data_polling.c

在我的项目中,“hi2c1”是 main.c 中定义的一个对象(从 ioc 接口配置)。我的问题是:

我怎么能在项目中包含 stts751_read_data_polling.c 而无需更改并调用:

void stts751_read_data_polling(void)

主要功能?

谢谢

0 投票
0 回答
54 浏览

framebuffer - 建议TouchGFX可以连接STM32F407的可能ROM芯片和RAM芯片

我有 STM32F407 板,例如 STM32F407 迪斯科板(没有 TFT)和一些基本的中文板。我已经使用 FSMC 接口将我的 TFT LCD 与电路板连接起来,并完成了文本、图形形状和图像等基础知识。所以我认为驱动程序就位。

现在我想介绍 Touchgfx 来让我的 GUI 生动起来。但据我了解,STM32F407 需要外部 RAM 和 ROM 来存储图像和完整的帧缓冲区以供 touchgfx 使用才能更有效。还需要添加 FreeRTOS 和我的应用程序代码。

那么我可以为此目的使用哪些可能的 ROM 和 RAM 芯片选项。BGA 型 RAM 或高引脚数 ICS 在我的情况下不实用。

请建议。

谢谢

0 投票
0 回答
450 浏览

c - STM32 SD FATFS挂载错误(FR_NOT_READY)

我实际上是在尝试使用 STM32L486QGI6 在 µSD 卡上写入数据。该函数f_mount()返回FR_NOT_READY是否放置了 µSD...

我已经检查了数十个 CubeMX 生成的教程和示例(检查了引脚、下拉中的 SD_Detect、除 CK 之外的其他引脚的上拉、全局中断、40MHz 时钟除以 4 等...)

有我正在使用的代码:

以及 CubeMX 配置:

  • 在此处输入图像描述

  • 在此处输入图像描述

  • 在此处输入图像描述

  • 在此处输入图像描述

  • 在此处输入图像描述

  • 在此处输入图像描述

  • FATFS 配置:

在此处输入图像描述

  • 在此处输入图像描述
  • 在此处输入图像描述
  • 在此处输入图像描述
0 投票
0 回答
33 浏览

stm32 - 功能安全和 HAL 代码生成器

我目前正在努力实现嵌入式项目的功能安全。在合格工具和流程链中的许多其他主题中,还有由 STM32CubeMX 生成的 STM32 MCU 的 HAL 代码。

该工具生成的代码有助于安全相关系统的可执行代码。所以在我看来,我会把它评为T3。这意味着必须根据安全标准开发工具本身

由于任何安全文档中都没有提到这个软件,我不认为 STM32CubeMX 是一个合格的工具。尽管如此,如果我不想自己编写它,我将不得不使用这个软件生成的代码(我认为这更容易出错)

所以我想知道如何处理这种特殊情况。如果我对生成的代码进行某种验证测试或审查,是否可以使用该代码?我怎样才能获得足够的信心,是否有一些现有的指导方针?

0 投票
0 回答
31 浏览

c - 使用 V1.11.1 固件包的 STM32WB55 USB Custom Hid 问题

你好吗?希望你们一切都好=)

我使用 V.10.1 版本固件包开发了我的应用程序。有人要求我更新固件以使用 V1.11.1 固件包。当我升级时,一些事情搞砸了,包括 CustomHID。

这是正在发生的事情:

在 CUSTOM_HID_OutEvent_FS 函数中,我的设备使用

USBD_CUSTOM_HID_SendReport。这与 V1.10.1 完美配合。现在我升级了,我的整个 USB 通讯在第一次发送 ACK 后就搞砸了。在第一次发送包后,我的应用程序无法通过 USB 接收发送数据。如果我删除 ACK 发送,我可以连续接收数据。

更新后我注意到:

PCB 和 USB LL 库已更改。经过大量调试后,我注意到这个特定的函数搞砸了:PCD_EP_ISR_Handler。

此功能从 V1.10.1 更新到 V1.11.1。我研究了这个函数和 USB 代码流,发现了一个让我的 USB 通信恢复工作的变化。这是 EP_ISR_Handler 函数的最后几行:

使我的 USB 通信恢复工作的原因是在上面的代码片段的最后几行中将 HAL_PCD_EP_DB_Transmit 更改为 HAL_PCD_EP_Transmit。

老实说,我远非 USB 专家,我不知道此功能更改对 USB 流的确切影响是什么。我所知道的是,我不应该修改 ST 驱动程序以使我的应用程序正常工作。

按照 ST youtube 频道上提供的教程,我的自定义 HID 已经开始工作了。我正在使用完全按照教程中描述的 64 字节包接收/发送的 USB 设置。

我已经尝试过的事情:

-> 仅使用 CUSTOM Hid 创建了 V1.11.1 项目。有同样的行为。

-> 尝试使用 V1.11.0。有同样的行为。

所有这些都解释了,有人可以给我一个提示我该怎么做吗?我需要将固件包更新到最新版本。