问题标签 [stm32f0]
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.
usb - 在 STM32 上进行 USB 写入的典型时间是多少?
我有一个 STM32f042,我已经从 STM32F0x2_USB-FS-Device_Lib V1.0.0 加载了示例自定义 HID 固件。
然后我做了一些简单的写传输,只发送一两个字节,并使用wireshark观察响应。
在进行了大约 10 次传输之后,完成传输的时间似乎在 15 毫秒到 31 毫秒之间,平均在 25 毫秒左右。过去有人告诉我,单个快速 USB 事务应该需要大约 1 毫秒,所以我觉得这慢了一个数量级。
这是这个芯片的正常时间吗?(我将如何弄清楚什么是“正常”?)或者这是否异常缓慢?
timer - STM32F0 TIMx 预分频设置对更新中断没有影响
我从 STM32CubeMx 生成了我的代码,并希望每 1µs 生成一个更新事件。我使用 48MHz 的内部时钟,这应该是 Prescaler:0 和 Autoreload:47 结果为 1µs。我使用带有 TrueStudio V.9.0.0 的 STM32F030
生成的代码
我在我的初始化中添加:
在 IRQ_Handler 我切换一个 PIN:
用代码刷新我的设备后,它会生成一个频率为 889kHz 的信号,脉冲宽度为 564ns,用示波器测量。预分频器或自动重载的更改不会影响此输出,它会立即保持在 T_Pulse=564ns 或 F=889kHz。知道我在这里缺少什么吗?
注册调试输出:
stm32 - HAL_SetDate 将年份设置为错误值
我将 STM32F030RCT6 与 CubeMX 一起使用。设备是一个数据记录器,而 RTC 是不能失败的主要东西。在勘误表上有一些关于 RTC 影子寄存器的内容。
我将CubeMX配置为不生成MX_RTC_Init()
函数,目前运行正常。(我正在使用伦敦政治经济学院)
我需要从 GSM 时间更新时间/日期,但是当我将年份设置为18时HAL_SetDate()
,我读了一小段时间后HAL_GetDate()
,sDate.Year
给了我20。除了Year
,其他值都是正确的。
我尝试了什么:
- 二手 LSI
- 而 (HAL_SetDate != HAL_GetDate) HAL_SetDate(ActualDate)
- 先
HAL_GetDate
然后HAL_SetDate
我没有进步,事情甚至变得更糟,比如Month
= 56,Day
= 45等。
提前致谢。最好的祝福。
arm - STM32f091rc UART接收函数只返回数据包的最后一个字节而不是完整的数据包
我一直在研究 STM32f091rc 板,试图让 UART1 和 UART2 工作。我尝试从控制器向 STM 板发送 8 个字节的数据包。由于某些原因,我的功能只是显示数据包的最后一个字节。我的接收功能如下:-
我究竟做错了什么?谁能指出我正确的方向?谢谢你的时间。
visual-studio-code - ** OpenOCD 初始化失败 ** 在使用 VS Code、platformio、stlink v2 和 stm32 f030r8t6 时
(我在我的问题中添加了链接,但我会尽可能详细地解释我的问题是什么,这样您就不需要使用这些链接,它们仅供参考)您好,
我正在尝试遵循此 youtube 教程(https://www.youtube.com/watch?v=R6SstBoXjKc&list=PL6PplMTH29SHgRPDufZhfMRoFwRAIrzOp),但他使用 coocox IDE 和 windows。我正在使用 VS Code 和 Ubuntu 16.04.4 LTS。我正在尝试使用 VS Code 的 platformio 扩展以及 stlink-v2 和裸 stm32 f030r8t6 微控制器(https://www.newbiehack.com/categories/newbiehack-microcontroller-ARM-stmicro-STM32F0R6-withBreadboardInterface)。要将我的笔记本电脑连接到开发板,我使用了 st-util 命令,该命令提供以下输出:
我的 platform.ini 文件是:
我创建了一个名为 f030r8t6.json 的自定义配置文件:
当我构建项目时,一切正常,但是当我尝试上传时,我得到以下信息:
我已经坚持了好几个星期了,非常感谢任何帮助!谢谢!
gcc - ARM GCC 编译器“buggy”转换
问题
我正在对 STM32F051 进行闪存优化。据透露,float
和int
类型之间的转换会消耗大量的闪存。
深入研究后发现,转换为int
大约需要 200 字节的闪存;而转换为unsigned int
大约需要1500个字节!
众所周知,两者的int
区别unsigned int
仅在于对“符号”位的解释,因此这种行为对我来说是一个很大的谜。
注意:执行 2 阶段转换float
-> int
->unsigned int
也仅消耗大约 200 个字节。
问题
分析一下,我有这样的问题:
1) 的转换机制是float
什么unsigned int
。为什么在同一时间转换float
-> int
->unsigned int
占用这么少内存时占用这么多内存空间?也许它与 IEEE 754 标准有关?
float
2) 当使用转换-> int
->unsigned int
而不是直接float
->时,是否会出现任何问题int
?
3) 是否有任何方法可以包装float
->unsigned int
转换以保持低内存占用?
注意:这里已经提出了熟悉的问题(试图了解编译器如何完成转换/转换,例如,从 float 转换为 int 时),但仍然没有明确的答案,我的问题是关于内存使用情况。
技术数据
- 编译器:ARM-NONE-EABI-GCC (gcc version 4.9.3 20141119 (release))
- 单片机:STM32F051
- MCU内核:32位ARM CORTEX-M0
代码示例
/li>float
->int
(约 200 字节的闪存)
/li>float
->unsigned int
(~1500 字节!闪存)
/li>float
->int
->unsigned int
(大约 200 字节的闪存)
usb - DFU模式下的STM32F04仅在电池供电时识别(Win10)
我制作了一个 STM32F042k6,电池供电的设备,我想刷 vi DFU 协议。
为此,我断开电池,将 BOOT0 拉到 VCC,然后将设备插入 PC 的 USB3 端口(没有可用的 USB2)。设备无法识别并显示 VID:0000 PID:0002(案例一)
但是,当我第一次连接电池,然后将设备连接到 PC 时,它会毫不费力地被识别(案例 II)。
我面临的问题是我想通过软件中的命令开始跳转到引导加载程序 - 但后来我达到了与我完全相同的条件。
你能帮我确定我违反了正确启动的条件吗?
编辑: 我发现问题的方式是当我实现软件跳转到引导加载程序时。它似乎根本不起作用(VCP 设备消失,并且错误的 <> 设备出现在系统 PID:0002 VID:0000 中)。我想通过拉起 BOOT0 引脚来进入引导加载程序,但我可以看到我只有在电池电源循环时才成功。USB 电源循环导致相同的“失败的描述符”设备。
我怀疑当通过 USB 开机时,booloader 存在一些通信问题,无法建立正确的 PID 和 VID。通过电池供电时 - 不存在此问题。
stm32 - STM32CubeMX 正在生成带有重复 C_SOURCES 的 Makefile
我刚刚开始学习 STM32 开发(在 Ubuntu 16.04 上)。
我使用 STM32CubeMX 构建了一个基于 Makefile 的项目。
生成的 Makefile 在 C_SOURCES 中有重复的条目,这(显然)由于重复的符号而导致链接失败。
Src/main.c
, Src/stm32f0xx_hal_msp.c
, Src/stm32f0xx_it.c
, Src/usbd_conf.c
,Src/usbd_desc.c
和Src/usb_device.c
每个都在此列表中两次。
如果我从 Makefile 中删除重复项,则会生成生成的项目。
我做错了什么,或者这是 STM32CubeMX 中的错误?
eclipse - STM32F091Rc 与外部 (I2C) RTC MCP79411 接口
我正在尝试通过 i2c 总线将 STM32F091Rc 与 MCP79411 连接,我能够从芯片(MCP79411)获取唯一 ID,但无法从芯片设置或获取 RTC 日期和时间。
我正在使用 CUBEMX 生成 I2C 初始化和其他所需文件,我也在使用 freertos 和 eclipse IDE。
似乎找不到任何与 RTC 芯片相关的库。任何帮助都会很有用。
编辑:(工作)用于从 MCP79411 芯片检索唯一 ID 的代码。
I2c 声明是通过 STMCubeMX 生成完成的。
用于检索 RTC 日期和时间但失败的代码。
提前致谢。