问题标签 [nucleo]

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

stm32 - STM32F103C8T6板用Keil 5不闪烁

我有以下问题。一旦我使用 ST CubeMX 生成 Keil 项目并将项目写入 STM32F103C8 MCU,一切顺利;但是,在第一次闪烁之后,我无法再闪烁它,因为它会引发以下错误:

我拉了 Boot0 引脚,激活它,并擦除了 MCU。此程序仅帮助一次闪烁;但是,如果我用裸机或 CMSIS 代码(不是由 CubeMX 生成)刷新 MCU,它可以正常工作,并且我可以根据需要多次刷新而不会出错。您能否提供建议,可能出了什么问题,我该如何解决?

0 投票
1 回答
307 浏览

embedded - 在 STM32F1 的中断处理程序中使用 Tim2

我正在使用 TIM2 通用定时器闪烁 LED。

main.c 中的代码

单击按钮时,应调用 EXTI 中断以使 LED 快速闪烁 20 次。但是,LED 保持亮起并完全停止闪烁。

您能否建议我如何调整 EXTI 的中断 ISR,以便它可以使用 TIM2 以及更快的闪烁。

0 投票
1 回答
517 浏览

stm32 - Nucleo 板上的 STM-Link 未枚举

我有两个核板(F4339ZI 和 F303K8),当我通过 USB 端口(CN1 - ST-Link 上的 USB 微型端口,而不是板的 USB 端口将它们插入计算机时,它们都没有显示为 USB 设备本身)。

我在两台不同的计算机上尝试了多个主机 USB 端口,有和没有 USB 集线器,一台运行 OS X,一台运行 Linux。我已经尝试了至少 6 种不同的电缆。OSX 机器正在使用 USB-C 到 USB-A 转换器(如果这是正确的术语)。Linux 机器具有 USB-A 端口。

在任何情况下,该设备都不会lsusb在 Linux 或system_profiler SPUSBDataTypeOSX 下使用。不用说STM32CubeIDE和st-info都看不到板子了。其他 USB 设备正常工作。

COM LED 呈红色缓慢闪烁,手册 ( https://www.st.com/resource/en/user_manual/dm00244518-stm32-nucleo144-boards-stmicroelectronics.pdf ) 表示 USB 枚举尚未完成(与从操作系统级别看)。

这些板在通电时成功运行工厂提供的闪烁程序。我已经尝试(使用 F4395I)将 JP3 移动到 VIN,这样电路板就不会启动,这应该只是让 ST-Link 运行——尽管仍然没有枚举。

我尝试在关闭 JP1(和 U5V 上的 JP3)的情况下连接到 USB 充电器,并且电路板通电并闪烁运行。上面引用的手册说:

如果板子由 USB 充电器供电,则没有 USB 枚举,因此绿色 LED LD6 永久保持关闭状态,目标 STM32 未供电。

但一切都对我有用 - LD6 与连接到计算机时一样呈稳定的绿色。

鉴于它发生在多台计算机、操作系统、电缆和 Nucleo 板上,我认为错误在于我,这是所有测试中的共同因素。这是我第一次使用 Nucleo 板,所以我很可能有一个错误的假设。

0 投票
3 回答
3576 浏览

timer - STM32定时器输出比较不能正常工作

我正在使用 STM32L476 Nucleo 板和 STM32CubeMX。我想将输出比较通道 1 用于 2 毫秒的超时。我已经配置了定时器,但定时器没有为输出比较提供中断。我在给定时器的时间段内收到中断,但不是为了输出比较。

这是我的计时器配置:

我尝试更改该sConfigOC.Pulse值,但没有看到预期的行为。

0 投票
0 回答
46 浏览

c - NUCLEO F401RE 通过 UART 向 nRF DK 板发送错误数据

我正在尝试通过 UART 将数据从 NUCLEO 板发送到 nRF 52840 DK。问题是我发送的内容被错误地接收。例如,当我发送值 3 时,我收到 32。我不确定问题出在哪里。

这是 NUCLEO 代码 '''

'''

以及 nRF DK 的代码。来自外设/UART示例代码

'''

'''

两者的波特率均为 115200

任何帮助或建议将不胜感激。

0 投票
0 回答
375 浏览

audio - stm32 SD卡混音

我正在尝试通过 SDIO 从我的 SD 中读取 2 个带有 FATFS 的文件并混合 16 位 PCM 音频数据。它可以工作,但输出声音在播放 2 个文件时速度较慢,听起来不太好。

我使用 I2S 将数据发送到 IC。我的 Buffersize 是 4096。如果不混合 2 个缓冲区,音频质量就很好。当我使用该示例混合我在网上找到的缓冲区时,您会听到很多噪音。

有任何想法吗?

我的代码:

I2S 回调发送下一个缓冲区

0 投票
1 回答
170 浏览

c - stm32 如何从 lsm303c i2c 得到答案

我为 arduino STM32 核板编写了代码,在那里我读出了 WHO_AM_I 寄存器并收到了我期望的值。

但是当我用 Keil 编写我认为是代码的代码时,所以在纯 c 中做同样的事情时,我没有得到答案,并且波形在我的示波器上看起来不同。当我执行 HAL_I2C_device_ready 时,我总是会出错。我找不到我做错了什么。

它使用相同的板,并且两个结果的连接相同。

arduino 代码示波器输出 Arduino代码 #include uint8_t buff = 0;

STM32 代码与 Keil stm 32输出带keil示波器

0 投票
1 回答
395 浏览

stm32 - 在 Nucleo-H7 上使用 SPI2 时出现问题,而 SPI1 工作正常

我的设置如下:将 Nucleo 板(嵌入 STM32H743 的 Nucleo 144)配置为 SPI Master。另一个相同的板被配置为 SPI 从设备。

对于 Master,我使用以下配置设置了 SPI1(引脚 GND、D11、D12 和 D13 - CN7 连接器的 PA5、6、7-):

  • GPIO:非常高速,备用功能 5
  • SPI:预分频器 DIV8,启用中断,单工通信,无从机选择
  • 所有时钟设置为最大值(CPU 400MHz 等...)

对于从站,我也设置了 SPI1(相同的引脚),它工作正常。

然后我尝试为从板切换到 SPI2 外设,但无法使其工作(主板没有变化)。我为 SCK 选择了引脚 D18 (PB13),为 MISO 选择了 A7 (PC2),为 MOSI 选择了 A2 (PC3)。

我检查了以下几点:

  • SPI2 外设时钟使能
  • 启用 GPIOB 和 C 时钟,引脚 PB13、PC2 和 PC3 的设置方式与之前设置中的 PA5、6、7 相同。
  • 对于 GND,我在板上尝试了不同的 GND 引脚,我不知道它是否有区别。
  • 用于 SPI2 的 GPIO 在我的代码中的其他地方没有使用。我从 STM32H743ZI 的数据表中得到了它们

我所看到的:

  • 我的从机仍在正确接收 SCK 信号:我得到了正确数量的 RXP 中断。
  • 从机接收的数据已损坏。
  • 但是从机发送给主机的数据是正确的。

我认为 MOSI 信号配置不当,无论是物理上还是逻辑上。我尝试了其他 GPIO 引脚,其替代功能可以是 SPI2_MOSI 但行为相同。

SPI2 和/或此 GPIO 设置是否有特殊性?板上的 GND 位置重要吗?

0 投票
2 回答
521 浏览

stm32 - STM32L4xx 上的 SPIx 的 Rx 缓冲区接收到一个字节时,是否有一个 HAL 库 ISR 函数会自动触发?

我想知道 HAL 库中是否有一个用户可定义的内置 ISR 函数,该函数在 STM32L4xx MCU 上的 SPIx Rx 缓冲区中接收到一个字节后立即触发?例如,作为启动测试,我想通过 SPI2 从主 STM32L452 核板发送一个字节(0xBC)到从站 STM32L452 核板。一旦从板接收到该字节,它就会闪烁 LED2,并将不同的字节 (0xCD) 发送回主板。一旦主机接收到字节,它会闪烁 LED2 作为确认。我已将两块板初始化为主/从,启用 DMA 和全局中断,使用 MXcube 每次传输 8 位。我可以使用 HAL_SPI_Transmit_DMA() 和 HAL_SPI_Receive_DMA() 函数和写入主程序的 while(1) 部分的延迟来实现我想要的(如下所示)。然而,

主码:

奴隶代码:

0 投票
1 回答
198 浏览

c++ - 错误消息:找不到外围设备的 pinmap 位置:Nucleo-F429ZI 上的 0x8009B0B

当我把它加载到我的板上时,我得到一个找不到外围设备错误的 pinmap。我对这个问题做了一些研究(我访问过的页面之一),我想我理解这个问题,但是我使用的所有引脚都支持我要求他们做的事情。自从我将代码从过程转换为面向对象(我需要这样做才能正确实现调度)时,才出现此问题。

我感觉这与我如何在构造函数成员初始化器列表中初始化它们有关,因为我不完全理解它是如何工作的(我对 C++ 相当陌生)。

我的程序还有其他类,但是它们遵循与我的 UpdateOutput 类相同的结构。

提前感谢您的任何建议。

更新输出类:

UpdateOutputs 类中的函数示例