问题标签 [stm32f1]
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 - 在 stm32 f767zit 上未正确生成 PWM 信号
我正在使用 stm32 f767zit,我正在尝试生成 PWM 信号来控制伺服系统,但它们没有正确生成。我按照这里的教程Deep Blue Embedded并能够在 stm32 f103rb 上很好地生成 PWM 信号,但我切换到 f767zit 因为我需要更多的 PWM 输出。我已经查看了 HAL 文档,并对它们进行了比较,据我所知,应该如何生成 pwm 信号没有任何区别。
我已经用 stm32 板做了几个项目,但我仍然是一个菜鸟。我已经寻找了很多小时的解决方案,但我找不到一个。抱歉,如果这实际上只是我所缺少的简单而基本的东西。
这是 pwm 输出的屏幕截图。如您所见,f103rb 正常生成它们,50hz 和 3.3v 峰值的方波。f767 上的 pwm 信号由许多尖峰组成,峰值为 10mV。虽然,它们似乎确实以正确的脉冲长度产生
在我的代码中,我要做的就是初始化伺服系统并将它们设置为一个位置。有 12 个伺服系统,它们使用计时器 1-4。具体的通道和管脚可以在伺服配置代码中看到。我的主要代码初始化所有外围设备,然后initServos()
调用. 然后我的主循环调用. 我只在主代码中移动一个伺服,但我已经测试了我正在使用的每个引脚并得到相同的结果。SERVO_init()
SERVO_CfgParam
SERVO_moveto()
我使用相同的方法和代码在我的 f013rb 上控制 3 个伺服器,没有任何问题。我无法弄清楚 f767zit 有什么区别。
主要代码
伺服配置。
伺服初始化函数
移动伺服
GPIO 和定时器初始化
让我知道您是否需要更多信息。
c - 错误“没有足够的 RAM 'ucHeap' 用于 STM32F103
我用 Freertos STN32F107 为自己重新制作了一个空项目,但现在出现了“没有足够的 RAM 'ucHeap'”形式的问题。诀窍是,如果您设置该值 configTOTAL_HEAP_SIZE ((size_t) (17 * 1024))
,则会出现错误“没有足够的 RAM 'ucHeap'”,并且如果您设置configTOTAL_HEAP_SIZE ((size_t) (1 * 1024))
程序将编译,但我的任务将无法运行。
我正在使用 MK STM32F103C4,Freertos 版本 9.0.0
请告诉我我做错了什么。
stm32 - 问题编程和运行STM32F103C8
我遇到了 stm32f103c8 的意外问题。我正在对芯片进行编程,复位后,它开始运行程序,但几秒钟后,微控制器变得混乱并停止运行程序。之后,当我尝试重新编程微控制器时,IDE(IAR EWARM)告诉“目标保持在复位状态”。
这是一个非常不寻常的问题,因为有时当我将 nRST 引脚直接连接到 VCC(3.3V)时,微控制器运行程序但不幸的是电流超过 120mA,芯片最终崩溃。
我正在使用 STM32CubeMX 生成代码,我的程序员是 STLINK V2(克隆),也尝试过 Jlink V8.0(克隆)但没有改变结果。
难道是因为克隆程序员?
谁能帮我解决这个问题?
谢谢
c - * 类型的 C 参数与 * 类型的参数不兼容
我正在尝试在 STM32 板上制作 HID。但是我遇到了下一个问题:我不明白我的错误在哪里,我传递了一个指向包含报告函数数据的结构的指针,但是当我尝试编译代码时,我得到下一条消息:“keyboardHID *”类型的参数不兼容使用“uint8_t *”类型的参数,我以与此视频中的人相同的方式编写代码https://www.youtube.com/watch?v=tj1_hsQ5PR0。在他的情况下,这不是一个严重错误并且代码可以编译。
我的结构:
修改结构元素并向计算机发送报告的代码:
stm32 - stm32f103c8 跳转到应用程序不起作用
当通过MCS 引导加载程序(媒体 uart)提交 app.bin 文件并进入 stm32f103c8 提供成功数据然后通过 jumpToApp() 函数运行 app.bin时,我编写了一个通过 uart 引导 stm32f103c8 的程序员。但 jumpToApp() 无法正常工作。
引导加载程序代码(写入闪存):
引导加载程序代码(跳转到应用程序功能):
app.bin 文件在 flash micro 上正确获取和写入,但它没有运行。我在此链接中使用了一些代码并使用 keil ide
c - STM32立方体IDE LED不闪烁
我有一块带有 STM32F103RET6 的板子,上面有很多东西,还有一个连接到 GPIO 引脚的蓝色和绿色 LED。为了测试它是否正常工作,我正在使用 STM32 cube IDE 上传一个闪烁 LED 的程序,并且 LED 会打开,但延迟后它不会关闭。我已经尝试过使用我拥有的两个 LED,并且它们都发生了相同的情况,我选择的那个会打开,但它不会关闭(不会闪烁)。我正在使用的代码如下:
我也尝试过HAL_GPIO_TogglePin
,我得到了相同的结果。我相信问题不在于编码,因为它真的很简单,所以时钟配置肯定有问题。我正在使用 16 MHz 的外部振荡器。
感谢您的时间。
阿尔瑙
embedded - stm32F1 DMA 在使用 2 个 UART 时冻结而没有任何错误
我正在将 TFmini S LIDAR 与 nucleo STM32F103 连接,我使用 2 个 UARTS、uart1 和 uart3 来接收 LIDAR 数据。我为此使用 DMA。LIDAR 频率为 1000Hz,数据长度为 9 个字节。uart 1 和 3 波特率设置为 256000。我正在使用 HAL_UART_ErrorCallback() 函数来捕获任何错误。
当我通过切断电源来重置电路板时,一切正常。但是,如果我使用重置按钮或软件重置将其重置,则其中一个 uart 冻结并且我看不到任何错误。我也没有检查过错误标志。
我尝试了没有 DMA 的基于中断的接收,但它没有冻结。所以这是 DMA 的问题,但我没有收到任何错误。
stm32 - STM32F103C8 几个小时后复位
我有一块 STM32F103C8 板,我的程序正在以 500KHz 的频率切换 GPIOB1。
起初,微控制器完美地运行程序,但主要问题是 MCU 在几个小时后复位并保持在复位模式,直到我断开电路板与电源的连接。如果我在断开连接后立即给板子上电,MCU 将无法工作,但如果我在几分钟后给板子上电,MCU 只能正常工作几个小时,然后重复同样的问题。
我已经遇到了另一个问题,这个问题在 15 分钟后发生,我在 VDD3 引脚上添加了一个 10uF 电容器,现在,这个问题(进入复位模式)大约在 5 或 6 小时后发生。
您对硬件或程序有什么建议吗?
我应该如何处理复位引脚?(目前,我正在用 10K 欧姆电阻上拉 nRST 引脚)
这会因为 VDD、VDDA 和 nRST 引脚上的错误上电顺序而发生吗?
这类似于时钟故障吗?
这是示意图
提前致谢,
阿米尔
debugging - STM32F103 works on Arduino IDE but not on STM32CubeIDE
I just bought a STM32F103 "Blue pill" and a ST-Link V2 clone to program it. I'm having a weird issue, I can program and flash the microcontroller using Arduino IDE, and it works just fine, at least blinking LEDs and stuff, but when I try to flash it with STM32CubeIDE provided by ST, it doesn't work. It seems to know there's a microcontroller connected to the ST-Link, and when I try to flash it, if I was running the blinking code on the board, it stops, it doesn't blink anymore, like the STM32CubeIDE erases the previous program, but doesn't load the new one. This is what I tried:
- I made sure I wasn't using the pins the ST-Link uses to program and debug, and that the project had "Serial debug" configured to those pins
- I tried making the onboard LED blink and to even just turn on an output using HAL_GPIO_WritePin() and nothing
- I've read that some board have clone microcontrollers (even if mine does have the ST logo) and only work with OpenOCD debugger so I tried that too, modifying "stm32f1x.cfg" so it ignored the devices ID
- I've also read that changing the reset to "Software system reset" works so I tried it with OpenOCD and GDB Server, no luck
- I tried reinstalling the IDE
I really don't know what's going on, taking into account that with Arduino IDE it worked first try, not even an error or warning message.
This is the Consolre report when I try to use GDB Server:
And this is the output of OpenOCD
EDIT to add more information: I tried debugging the code with the debug option. First time, I saw the microcontroller was "running" the code but was always getting stuck on the Error Handler code generated by the IDE, which is simply a loop. After more debugging, I found that for some reason it jumps to that subrutine if I use the external crystal of the board for the RTC, so I just changed it to use the internal RC, since I'm not using it for the moment. However,now the code "runs", jumping from breakpoint to breakpoint, but it doesn't actually run on the microcontroller. To explain it better, here's the main loop:
I have a breakpoin on each write calls, and if click on run, it shows that the code jumps from write to write in an infinite loop. So, in theory, it should be working, but in the microcontroller the status of the output pin doesn't change. It stays always ON, doesn't matter how many times I let the code run. It's like the debugger is emulating the microcontroller instead of running the code on the actual hardware.
I tried using Arduino IDE, and I can even make an OLED screen work with the STM board, so I'm still confused with the official IDE not working.
embedded - STM32F103不断重启
我正在使用STM32F103。我观察到我的一块板一直在重启。我将相同的代码刷入另一块板上,在另一块板上一切正常。我也擦除并刷新了故障板,但无济于事。是否有可能偶然恢复此板。我确信这个问题是特定于该板的。所有组件看起来都很好(目视检查)。