问题标签 [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.

0 投票
1 回答
182 浏览

usb - 在 STM32 上进行 USB 写入的典型时间是多少?

我有一个 STM32f042,我已经从 STM32F0x2_USB-FS-Device_Lib V1.0.0 加载了示例自定义 HID 固件。

然后我做了一些简单的写传输,只发送一两个字节,并使用wireshark观察响应。

在进行了大约 10 次传输之后,完成传输的时间似乎在 15 毫秒到 31 毫秒之间,平均在 25 毫秒左右。过去有人告诉我,单个快速 USB 事务应该需要大约 1 毫秒,所以我觉得这慢了一个数量级。

这是这个芯片的正常时间吗?(我将如何弄清楚什么是“正常”?)或者这是否异常缓慢?

0 投票
1 回答
461 浏览

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。知道我在这里缺少什么吗?

注册调试输出:

0 投票
3 回答
2311 浏览

stm32 - HAL_SetDate 将年份设置为错误值

我将 STM32F030RCT6 与 CubeMX 一起使用。设备是一个数据记录器,而 RTC 是不能失败的主要东西。在勘误表上有一些关于 RTC 影子寄存器的内容。

我将CubeMX配置为不生成MX_RTC_Init()函数,目前运行正常。(我正在使用伦敦政治经济学院)

我需要从 GSM 时间更新时间/日期,但是当我将年份设置为18HAL_SetDate(),我读了一小段时间后HAL_GetDate()sDate.Year给了我20。除了Year,其他值都是正确的。

我尝试了什么:

  • 二手 LSI
  • 而 (HAL_SetDate != HAL_GetDate) HAL_SetDate(ActualDate)
  • HAL_GetDate然后HAL_SetDate

我没有进步,事情甚至变得更糟,比如Month= 56,Day= 45等。

提前致谢。最好的祝福。

0 投票
3 回答
1526 浏览

arm - STM32f091rc UART接收函数只返回数据包的最后一个字节而不是完整的数据包

我一直在研究 STM32f091rc 板,试图让 UART1 和 UART2 工作。我尝试从控制器向 STM 板发送 8 个字节的数据包。由于某些原因,我的功能只是显示数据包的最后一个字节。我的接收功能如下:-

我究竟做错了什么?谁能指出我正确的方向?谢谢你的时间。

0 投票
1 回答
3493 浏览

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 的自定义配置文件:

当我构建项目时,一切正常,但是当我尝试上传时,我得到以下信息:

我已经坚持了好几个星期了,非常感谢任何帮助!谢谢!

0 投票
1 回答
206 浏览

gcc - ARM GCC 编译器“buggy”转换

问题

我正在对 STM32F051 进行闪存优化。据透露,floatint类型之间的转换会消耗大量的闪存。

深入研究后发现,转换为int大约需要 200 字节的闪存;而转换为unsigned int大约需要1500个字节!

众所周知,两者的int区别unsigned int仅在于对“符号”位的解释,因此这种行为对我来说是一个很大的谜。

注意:执行 2 阶段转换float -> int->unsigned int也仅消耗大约 200 个字节。

问题

分析一下,我有这样的问题:

1) 的转换机制是float什么unsigned int。为什么在同一时间转换float-> int->unsigned int占用这么少内存时占用这么多内存空间?也许它与 IEEE 754 标准有关?

float2) 当使用转换-> 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

代码示例

  1. float-> int(约 200 字节的闪存)

    /li>
  2. float-> unsigned int(~1500 字节!闪存)

    /li>
  3. float-> int-> unsigned int(大约 200 字节的闪存)

    /li>
0 投票
2 回答
1868 浏览

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。通过电池供电时 - 不存在此问题。

0 投票
1 回答
511 浏览

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.cSrc/usb_device.c每个都在此列表中两次。

如果我从 Makefile 中删除重复项,则会生成生成的项目。

我做错了什么,或者这是 STM32CubeMX 中的错误?

0 投票
0 回答
839 浏览

stm32 - STM32F0 ADC 处于 DMA 模式和 EOC/EOS 中断

根据数据表,ADC 在每次转换结束时生成一个 DMA 请求:

在此处输入图像描述

ADC 是否使用中断来生成此 DMA 请求?还是在后台使用硬件自动完成?我今天问这个是因为在 STM32CubeMX 中,您可以选择转换结束 (EOC) 或序列结束 (EOS) 中断。 在此处输入图像描述 在此处输入图像描述

我想知道选择 EOC 或 EOS 中断是否会对 ADC 生成 DMA 请求的能力产生任何影响。

0 投票
0 回答
213 浏览

eclipse - STM32F091Rc 与外部 (I2C) RTC MCP79411 接口

我正在尝试通过 i2c 总线将 STM32F091Rc 与 MCP79411 连接,我能够从芯片(MCP79411)获取唯一 ID,但无法从芯片设置或获取 RTC 日期和时间。

我正在使用 CUBEMX 生成 I2C 初始化和其他所需文件,我也在使用 freertos 和 eclipse IDE。

似乎找不到任何与 RTC 芯片相关的库。任何帮助都会很有用。

编辑:(工作)用于从 MCP79411 芯片检索唯一 ID 的代码。

I2c 声明是通过 STMCubeMX 生成完成的。


用于检索 RTC 日期和时间但失败的代码。


提前致谢。