问题标签 [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.
c - ADC值太高,端口串口读不出来
您好,我通过使用 CubeMX 和 Hal lib 获得了 STM32F01C8T6 的代码:
ADC 输入为 3.3V,端口串行测试正常。
在调试模式下的值为:536880200,在端口串行中只打印像 !,d@)_+( 这样的坏词
引脚和 ADC 配置:[1]:https ://i.stack.imgur.com/YubLM.png
完整的 main.c 代码:
ADC 值在调试模式下很高,我无法在端口串行中读取它,我该如何解决?
谢谢 。
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 识别并传输数据?
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 配置的打印屏幕:
我希望它足够清楚,如果您需要更多详细信息,请不要犹豫。
在此先感谢您的帮助!
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 或更多的数据流。
最好的问候,安德烈。
c - 板载 LED,直到我单击重置后才会亮起,数据接收/传输无法正常工作
我刚开始使用STM32F407GZ,一开始我想打开/关闭板上的LED。我正在使用 CubeMX 生成初始化代码。我可以接收和传输数据,但无法正确接收到数据。此外,在我单击重置按钮之前,LED 不会亮起。当我单击重置按钮时,LED 会亮起,但我停止接收和传输数据。
这是代码:
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)
主要功能?
谢谢
framebuffer - 建议TouchGFX可以连接STM32F407的可能ROM芯片和RAM芯片
我有 STM32F407 板,例如 STM32F407 迪斯科板(没有 TFT)和一些基本的中文板。我已经使用 FSMC 接口将我的 TFT LCD 与电路板连接起来,并完成了文本、图形形状和图像等基础知识。所以我认为驱动程序就位。
现在我想介绍 Touchgfx 来让我的 GUI 生动起来。但据我了解,STM32F407 需要外部 RAM 和 ROM 来存储图像和完整的帧缓冲区以供 touchgfx 使用才能更有效。还需要添加 FreeRTOS 和我的应用程序代码。
那么我可以为此目的使用哪些可能的 ROM 和 RAM 芯片选项。BGA 型 RAM 或高引脚数 ICS 在我的情况下不实用。
请建议。
谢谢
stm32 - 功能安全和 HAL 代码生成器
我目前正在努力实现嵌入式项目的功能安全。在合格工具和流程链中的许多其他主题中,还有由 STM32CubeMX 生成的 STM32 MCU 的 HAL 代码。
该工具生成的代码有助于安全相关系统的可执行代码。所以在我看来,我会把它评为T3。这意味着必须根据安全标准开发工具本身
由于任何安全文档中都没有提到这个软件,我不认为 STM32CubeMX 是一个合格的工具。尽管如此,如果我不想自己编写它,我将不得不使用这个软件生成的代码(我认为这更容易出错)
所以我想知道如何处理这种特殊情况。如果我对生成的代码进行某种验证测试或审查,是否可以使用该代码?我怎样才能获得足够的信心,是否有一些现有的指导方针?
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。有同样的行为。
所有这些都解释了,有人可以给我一个提示我该怎么做吗?我需要将固件包更新到最新版本。