问题标签 [truestudio]

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

microcontroller - 在“裸机”编程时,stm32f4 微控制器上的 UART 通信的实际波特率不正确

我正在尝试使用 usart2 直接配置相关寄存器来传输 char 数组:RCC、GPIO、USART2 并且在使用示波器测量时获得了不好的波特率(预期 9600 时约为 8k 波特。)

我正在使用 atollic True Studio 9.0.1 和一个“新嵌入式 C”项目对其进行编码,选择正确的 MCU,stm32F401RE,并将除调试探针之外的所有内容保留为默认值。

我只有一个包括:#include "stm32f4xx.h"

令我惊讶的是,当我使用 stm32CubeMX 创建项目并生成最小代码,然后用我的“裸机”项目代码替换 main.c 内容时,uart 的时基在示波器上看起来几乎完美(9571 波特)。

是不是很有趣?可能会发生什么?

这是我的代码:

包括和主循环:

一个一直发送“U”的简单测试函数:

初始化函数:

0 投票
1 回答
585 浏览

freertos - STM32F411、FreeRTOS 和 CubeMX HardFault_Handler() 连接到端口后

我的项目需要帮助。我正在使用 Atollic TrueSTUDIO、CubeMX 和 FreeRTOS。我有一个项目,我从 ADC 接收数据,并试图通过 USB 发送它。一切正常,直到我在 PC 上打开端口(我正在尝试 HTerm、RealTerm 等),然后调试停止并HardFault_Handler()出现。

这是我的 main.c(一切都是由 CubeMX 为 FreeRTOS 生成的:

这是我的 usbd_cdc_if.c:

有人可以帮助我吗?

0 投票
1 回答
2873 浏览

stm32 - 在 Atollic TrueStudio、STM32CubeMX 中导入 C 库

我目前正在开发一块 STM32F767ZI-Nucleo 板和一个小安全芯片(微芯片 atecc508a),它通过 i2c 连接进行连接。对于这个芯片是一个可用的库CryptoAuthLib,我想在我的项目中使用它。我还使用 STM32CubeMX 生成我的 C 文件和 Atollic TrueStudio 来编写我的实现。

C 编程语言对我来说相对较新,所以我不知道如何将我的库文件夹包含到我的项目中(在 cubemx 中还是在 trustudio 中?)以使其工作。

我认为 include 语句#include "cryptoauthlib.h"应该在 main.c 的 include 部分,但是我必须以某种方式告诉 IDE 使用这个库。

我很感激任何帮助,非常感谢。

0 投票
4 回答
2081 浏览

eclipse-plugin - STM32 Atollic TrueSTUDIO - 内存的图形视图

我正在使用 Atollic TrueSTUDIO for STM32 作为基于 Eclipse 的 IDE 来对音频信号执行数字信号处理。我正在寻找一种从 RAM 内存中绘制数组(16 位音频样本)的方法。目前我正在使用:

  • 记忆观
  • SWV实时数据时间线

这些工具都不能强大地分析阵列上的信号,而且它不一定是实时的:只是在到达断点后绘制一个阵列。

是否有 Eclipse 插件或其他一些方法可以做到这一点?我正在考虑将 RAM 内存和文件导出并在 Matlab 中绘制,但对于这么简单的事情似乎真的不合适。

感谢您的任何建议

0 投票
0 回答
207 浏览

arrays - Atollic TrueStudio (Eclipse) Debug Expressions 数组切割成零件

我想通过在 Atollic TrueStudio for STM32 9.1.0 的表达式面板中调试变量来将数组的所有元素复制到 Excel 工作表。在表达式面板中调试期间,我可以轻松选择数组元素,并且 ctrl+c -> ctrl+v 效果很好。

但是如果数组有很多元素,比如在我的例子中是 8192 个元素,那么表达式面板会将这个数组切割成 100 个元素部分的长度。见下图。

表情面板截图 在此处输入图像描述

从这个大数组中收集所有数据真的很痛苦。

有没有这方面的设置?

或者任何orher解决方法?

0 投票
1 回答
5041 浏览

c++ - 致命错误:stm32f4xx_syscfg.h:没有这样的文件或目录

我正在尝试使用 Atollic True Studio 在我的 STM32F4Discovery 板上编译此代码( https://github.com/cahya-wirawan/stm32f4-musicplayer )。当我启动 main 的调试时,我收到此错误:

../lib/driver/src/stm32f4xx_syscfg.c:50:30:致命错误:stm32f4xx_syscfg.h:没有这样的文件或目录

但是 stm32f4xx_syscfg.h 在路径 /stm32f4-musicplayer/lib/driver/inc 中,所以我认为这是一个路径问题,我必须在某个地方指定它。有任何想法吗?

谢谢

0 投票
1 回答
704 浏览

linker - TrueStudio - 为什么链接静态库失败?

我将 TrueStudio 用于我自己的 stm32 项目。我创建了 2 个文件 foo.h 和 foo.c 包含 2 个函数

以及超时的实现

之后,我使用 gcc 编译了一个静态库 foo.a。我继续制作主文件来实现库来测试。

接下来,我将静态 foo lib 链接到 main.c 以使用以下命令生成可执行文件

我运行它并得到结果是

效果很好,证明我的静态库已成功构建。我开始从 stmcubeMX 和链接器创建一个项目 stm32 到这个 foo.a 并出现错误。

我的完整代码和设置路径并在下面构建

在此处输入图像描述

在此处输入图像描述

我非常感谢任何帮助,谢谢!

0 投票
1 回答
272 浏览

stm32 - 如何在 IDB008V2 板上加载 st 给出的示例?

我需要在 bluenrg-2 上开发软件。我用的是IDB008V2开发板。我想使用ST提供的聊天示例:https ://www.st.com/en/embedded-software/stsw-bluenrg-dk.html

编译工作正常,但无法将其加载到板上。它重新启动,旧程序仍然存在。另外,stlinkv2(通过JTAG)没有检测到该卡,我被迫使用USB端口。

  • 我通过遇到相同的问题尝试了所有其他示例。
  • 我使用了 Keil 和 Truestudio,我得到了相同的结果。
  • 但是,当我创建一个新程序(Truestudio 的基本程序)时,它可以正确上传到开发板并完美运行。
  • 我也尝试将ST的聊天使用的不同源文件移植到一个新项目中,但是我很快发现自己遇到了很多依赖问题,例如未声明的变量等。

我不知道将源文件移植到新项目是否是个好主意。如果我可以将示例程序加载到板上,那将是一个好的开始。

0 投票
1 回答
390 浏览

c - 修复可能由于 STM32 Nucleo-F334R8 上的 malloc 导致的内存覆盖错误

我希望这是对我的问题的清晰解释,我已经在各种手册中运行了一个多星期,现在尝试解决这个问题:

最近我在对STM32 Nucleo-F334R8进行反馈和测试后,重新设计了一个班级项目的软件设计(我的初始代码充满了内存和时序错误)

目前我遇到两个主要错误:

(此问题已得到解决)

我一直在使用 sprintf 不考虑写入分配内存之外的尾随空字符。

在异步模式下以 115200 波特率使用 USART 1 处理 USART 数据时:

程序收到信号 SIGTRAP,跟踪/断点陷阱。memset()中的0x08002c08

程序收到信号 SIGTRAP,跟踪/断点陷阱。memset()中的0x08002c08

程序收到信号 SIGTRAP,跟踪/断点陷阱。memset()中的0x08002c08

程序收到信号 SIGTRAP,跟踪/断点陷阱。memset()中的0x08002c08

程序收到信号 SIGTRAP,跟踪/断点陷阱。std.isra () 中的 0x080056b4

存储在地址 0x08002c08 的值通常非常大,通常类似于十进制的 134228385。此外,如果我强行解决该问题,程序将继续正常运行并且再也不会遇到我发现奇怪的可能原因的问题?

更新:所以我已经跟踪了一下 memset 问题,发现它发生在我的setOutputBuffer方法中:

(此问题已得到解决)

本质上,我的问题的根源是滥用sprintf和用空字符覆盖程序代码

我在填充板子内存的 bss 段时遇到了断点陷阱

在为 4 位模式 LCD(即 PA12、PA11、PB12、PB11、PB2、PB1、PB15)和 DMA 模式下的两通道 ADC(PA1、PA0)添加两个 GPIO 端口后:

程序收到信号 SIGTRAP,跟踪/断点陷阱。LoopF​​illZerobss () at ..\startup/startup_stm32f334x8.s:103 103 cmp r2, r3 在尝试实现 LCD 和 ADC 功能时,我在启动的 LoopF​​illZerobss 函数期间收到断点陷阱错误,这被证明是致命的,特别是通过阻止我的 USART 报告完全没有(但是它仍然可以接收字节作为中断和处理令牌等,只是拒绝传输),在读入 bss 段后,我尝试通过将尽可能多的全局变量初始化为非零值来解决问题,但这不起作用,在添加 STM32CubeMx 设置后观察到问题对于 ADC 和 LCD 中使用的 7 个 GPIO 引脚,但据我所知,这些都没有使用单元化变量,除非 CubeMX 生成的预定义代码超出了内存 bss 段的范围并且 bss 段的大小也太大了现在对于董事会的内存很大(我怀疑这不太可能,但不能排除)。

本质上,这个项目的想法是通过 USART、ADC 和后来的 I2C 接收各种数据,并在当前通过 USART 和 LCD 显示数据的各个方面,如果我丢弃 ADC 和 LCD 错误,我的 USART 代码作为 memset() 错误的功能是非致命的,但我怀疑把它留在那里只会导致我以后的问题,但我也不确定在哪里修复我的标记化代码,假设它是我问题的根源。

0 投票
1 回答
441 浏览

c - 如何解决在 TrueSTUDIO for STM32 中设置断点时出现“断点安装失败:报价不匹配”的问题

在我的代码中设置断点然后调试后,我得到了问题标题中所述的错误并手动中断程序导致控制台消息“No source available for "__muldf3() at 0x80006be”(例如),可能表示没有调试源代码可以参考。

我尝试过清理、重建和重新启动 TrueSTUDIO。我已将构建配置设置为调试。我已确保 .elf 文件是正确的。

我不知道为什么我的调试源文件可能与我的构建代码不匹配。是否有一些我忽略改变的东西或一些设置?