问题标签 [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.
stm32 - 如何从 TrueStudio 调试和烧写 Nucleo32 板?
我正在尝试通过 TrueStudio 将我的代码闪存到 NUCLEO-L432KC(STM32L432KC)。它失败了。
[
看起来工具无法检测到 ST-Link 探针。我刚刚通过 PC(Windows10)的 USB 电缆连接了它。代码和工程文件由 STM32CubeMX 生成。
缺少什么?我应该怎么办?
我已经确认以下。
- 从 STM32CubeProgrammer GUI,它无法检测到 ST-Link 连接。
- 从 STM32CubeProgrammer CLI,它可以检测 ST-Link 的 S/N。但无法连接。
- 从 STLinkUpgrade 3.3.0 开始,它可以检测设备和 S/N。也可以更新到 V2J33M25。
- 从 IAR Embedded Workbench,它可以构建和闪存代码以及调试。完全没有问题。
- STM32F4 Discovery 套件用于 STM32F429 MCU 的结果看起来相同。
c - 如何在 Atollic TrueStudio 中包含 CMSIS-DSP 标头
我正在尝试在 STM32 F411RE 板上实现 DSP 的使用,但我似乎无法在不调用大量错误的情况下包含必要的文件。
背景
我以前在 Keil uVision 中使用过 CMSIS 和 CMSIS-DSP,但考虑到 32k 的代码限制,我很快就超过了评估限制。因此,我一直在尝试将 CMSIS-DSP 包含到 Atollic TrueStudio 中,但这似乎很难实现:CMSIS-DSP 上可用的文档有限,在 Atollic TrueStudio 中实现的文档更少。
一些相关资源可以在 Atollic TrueStudio 用户指南 以及 StackOverflow 主题 #1 和 StackOverflow 主题 #2中找到 。我能找到的大多数其他相关主题只是参考 Keil uVision 或用户指南的使用,而没有更多帮助。
Atollic TrueStudio 确实包含一个内置的包管理器,其中基本 CMSIS 可供下载,但它不为 CMSIS-DSP 包提供此选项。
尝试的解决方案
我曾尝试手动下载对应的CMSIS包(STM32Cube_FW_F4_V1.24.0),并将对应的DSP包放入工程文件结构中。然后,这允许使用 DSP 功能,例如
#include arm_math.h
也arm_rfft_fast_instance_f32 S;
可以通过使用自动完成功能来调用,并因此被 IDE 识别。
然而,这个过程也会引发很多错误,因为包含的函数无法识别它们的头依赖关系(例如#include arm_math.h
)。我发现 main.c 能够识别该#include arm_math.h
命令但包含的功能却不是,但我仍然尝试通过将 CMSIS DSP 添加到包含的目录来解决这个问题(在“构建属性-> C/C++”中找到构建 --> 设置 --> 工具设置 --> C 编译器 --> 目录`)。然而,这也不能解决手头的问题。
代码结果
该函数找不到标题
但是主要可以找到完全相同的标题
并且标头包含在构建选项 -> 目录中
刚刚验证它也包含在“路径和符号”中,一旦将其包含在构建选项中,它应该自动执行 AFAIK:
更新
自从我的 OP 以来,我取得了一些进展,主要是通过弄乱包含、符号和链接器。我现在已经设法克服了最初的错误(尽管不幸的是我不知道如何),但是我现在已经为 startup_stm32 文件产生了大量额外的错误。
这些似乎都是涉及 CMSIS 中包含的模板文件(CMSIS / Device / ST / STM32F4xx / Source / Templates / ARM / ...)的错误指令错误,无法解释这些模板中列出的各种命令。
示例错误:bad instruction __heap_base
stm32 - 在 TrueStudio 中上传到 STM32 时如何修复“无法打开文件”
我正在尝试将我为 STM32F411RE 编写的程序从我的 TrueStudio for STM32 IDE 上传到电路板本身。该板通过 mini USB b 电缆连接,目的是通过 SWD 对其进行编程。
设置
Atollic 提供了一个很好的教程,介绍如何通过其 TrueStudio IDE 和 ST-Link_CLI(命令行界面)执行此编程,如此链接中的文档所述。这需要以下步骤,我已多次遵循并检查:
首先,输出(二进制)文件需要是 intel .HEX 而不是 TrueStudio .elf 默认值。要更改此设置
Project properties -> c/c++ build -> settings -> tool settings tab -> other -> Output format
并勾选“转换构建输出”选项,请确保在下拉列表中选择了 Intel Hex 选项。要从 IDE 内部调用 ST-Link_CLI,需要进行外部工具配置。为了进行这个配置,我去
Run -> External Tools -> External Tools Configurations ....
创建一个新的配置,我们称之为 ST-Link_CLI。
对于工作目录,我指定我的 ST-LINK_CLI
(C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility
)的目录,
而对于位置,我指定此目录和文件名
(C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility\ST-LINK_CLI.exe
)。
最后,我添加了以下参数来识别 STM32 板,让它通过 SWD 连接并处于复位状态,同时告诉它上传由 TrueStudio
(-c ID=0 SWD UR LPM -P ${project_loc}\Debug\${project_name}.hex -v
) 构建的 .HEX 文件。
输出
当我通过Run -> External Tools -> ST-Link_CLI
刚刚创建的链接调用这个外部工具配置时,我得到下面列出的输出:
显然,从 IDE 内部成功调用了 ST-Link_CLI,但它无法消化 .hex 文件(在调试文件夹内)并将其上传到 STM32 板。
即使从 CubeMX 刷新一个全新生成的项目并设置上述选项(包括将其设置为 .hex 文件)也不会让该工具链将其上传到板上。
手动刷码
我已经能够通过使用 ST-Link GUI 手动将 TrueStudio 构建的 .HEX 文件上传到 STM32 Board 成功上传,所以我认为问题不在于 ST-Link 本身。但是我不能以这种方式调试它,因为我需要 TrueStudio IDE 工具,因此需要外部工具配置才能成功工作。
相反,我怀疑问题出在我自己的设置上,不知何故缺少通话或选项设置不正确。也可能是 GUI 和 CLI 客户端以完全不同的方式运行,允许一个读取和上传文件,而另一个不能,但这对我来说似乎不合理。
但是,我在这里有点不知所措,因为我似乎无法弄清楚为什么其他人可以通过提供的 Atollic 文档来完成这项工作,而我却抛出了这些错误。
c# - 如何使用 C# 将十六进制转换为浮点数
我通过 UART 从 ST MCU 获取数据并将值显示到 PC 屏幕,但其结果与我对浮点类型的预期不同。
我正在使用 TrueStudio for ST MCU 和 C# 在屏幕上显示值。我在 MCU 上使用浮点值并将数据发送到 PC 当我进入 PC 时,如果我向 textBox 显示浮点值,它的结果与我的预期相差太大。在 TrueStudio 内存视图和观察视图中,我可以看到下面
在 TrueStudio MCU 中,我可以看到
- 在观察窗口中:acc.x = 5.12400007
- 在内存视图中:浮点格式的 5.124000E0 十六进制格式的 CFF7A340
我可以通过 C# 中的 Visual Studio 在 PC 中获取这些数据
我可以通过观察窗口看到 byte[] 数组数据,我可以看到我得到了
/li>- 所以在 12 月,3489112896
我用这些转换了这个值,但我无法得到我想要的,5.124
将 dec 转换为 UInt32 所以
/li>
在 TrueStudio 中,复制如下(在 C 中)
在视觉工作室中,C#
我首先尝试使用 MSB/LSB,但无法得到我想要的。如何在 C# 中获得 5.123 浮点值?
stm32 - STM32 虚拟串口有什么问题?我打不开
我有 Nucleo STM32H743ZI 板。我正在使用 CubeMX HAL(我尝试了几个版本)和 TrueStudio。Windows 10 中出现“虚拟 COM 端口”(我尝试了默认的 Windows 驱动程序和 ST 驱动程序),但我无法打开端口。当我尝试打开它时,我的 C# 程序写给我“参数不正确”:
同样的消息写给我程序 Realterm,PuTTY 什么也不做,“Tera Term”程序工作正常——我可以向我的 MCU 程序发送和接收数据。
有人知道它是什么吗?
在我的 C# 程序和终端程序中,我使用相同的参数
USB 设备查看器信息:
c - Truestudio atollic(基于 Eclipse 的 IDE)创建空的二进制文件,尽管不是空的 elf 文件和大量代码
我正在尝试创建一个用于闪烁蓝牙板的二进制文件。不幸的是,编译时出错,因为某些原因我的二进制文件是空的。我有很多代码,它们是正确链接的。
关于我为什么会收到此错误的任何建议?
这是编译器的输出。如您所见,没有错误,只是一些警告,应该不危险:
这是主要代码:
stm32f4discovery - STM32F-Discovery和MAX31856之间的SPI通信问题
我试图使用 SPI 通信将我的 STM 发现板与 MAX31856 通信。根据数据表,我应该先发送地址字节,然后是数据字节。我目前能够写入寄存器,但是当我尝试读取写入寄存器的数据时,除非我只发送读取命令,否则我无法读取数据。
例如:
http://puu.sh/E2gJD.png 使用此代码,我可以读取默认寄存器值。
http://puu.sh/E2gLC.png 使用此代码,我可以将新值写入 CR0 和 CR1 寄存器。第一个 0x80 值是寄存器 CR0 的地址字节。下一个值是新的寄存器值 0x80 和 0x37。
http://puu.sh/E2gNK.png 我停止了之前的程序并将我的代码更改为这个程序。然后我开始调试。从这张图可以看出,CR0和CR1寄存器的值都变成了我们之前写的。
最后; http://puu.sh/E2gRw.png 当我尝试结合这两个操作,写入和读取时,我无法读取我写入寄存器的内容。需要一些帮助来解决这个问题。
我需要能够读取稍后写入 CR0 和 CR1 寄存器的命令。我怎样才能做到这一点?我希望你能理解我的问题并能够帮助我。谢谢。
stm32 - 尝试使用 STM32L452RE 微控制器从 MAX144 外部 ADC 获取数据但没有成功:(
我对使用 ADC 很陌生。我正在使用外部 ADC MAX144 使用 STM32L452RE 获取传感器数据。我将此 ADC 的两个通道用于两个传感器。ADC 不断发送数据,我想读取它。
ADC 的数据表在这里
我正在做的是:
- 创建了一个 2 字节的缓冲区
- 我将 DMA 用于 spi 和 uart
- 使用 HAL_SPI_Receive_DMA() 接收缓冲区中的数据
- 使用 HAL_UART_Transmit_DMA() 通过 usart 传输数据
我所做的代码如下:
在过去的两周里,我陷入了这个问题。任何这方面的指南都将受到高度赞赏。
问候。
stm32 - 如何使用STM32微控制器从外部ADC MAX144读取数据
上周我在使用 SPI 和 STM32L452 从外部 ADC MAX144 读取数据时遇到了问题。令人困惑的是如何在缓冲区中接收数据,因为 ADC 的数据表中没有提到内存地址或控制寄存器地址。数据表 ADC 如下所示。
https://datasheets.maximintegrated.com/en/ds/MAX144-MAX145.pdf
我尝试的是:
我做了一个2字节的缓冲区。(静态 unit_8 readBuffer[2])
然后使用 HAL SPI 的接收命令 ( HAL_SPI_Receive(&hspi3, readBuffer, 2, 5000)
- 并通过 USART 传输到 PC
令人困惑的是,我没有提供任何内存地址或控制寄存器地址来读取数据,因为 ADC 的数据表中没有提到寄存器,并且它不断发送数据。
请指导我有人对此有任何想法。我陷入了这个问题,但不明白。任何线索将不胜感激。
问候,