2020-09-01 02:55 PM
Haven't found anyone talking about the new API here.
I'm trying to code a program that flashes a STM32F334, reads processor's UID and post it to a proprietary database. STM32CubeIDE and CubeProgrammer works fine. I also managed to run C++ API and identify the STLink probe, but it doesn't connect to the device.
When trying to connect to device via C++ API, I get this error:
STM32CubeProgrammer API v2.5.0
STLinkUSBDriver.dll loaded
STLinkUSBDriver.dll loaded
STLinkUSBDriver.dll loaded
ST-LINK SN : 0676FF505150807567112946
ST-LINK FW : V2J36M26
Board : NUCLEO-L053R8
Voltage : 0.01V
SWD freq : 4000 KHz
Connect mode: Normal
Reset mode : Core reset
Error: Unable to list supported devices
Error: Cannot identify the device
Establishing connection with the device failed
Disconnected from device.
I'm running on MacOs 10.15.6. This is my source code:
#include <iostream>
#include <string>
#include <CubeProgrammer_API.h>
#include <DeviceDataStructure.h>
#include <DisplayManager.h>
using namespace std;
extern unsigned int verbosityLevel;
void stLinkInit()
{
int ret = 0;
const char* loaderPath = "./.";
displayCallBacks vsLogMsg;
/* Set device loaders path that contains FlashLoader and ExternalLoader folders*/
setLoadersPath(loaderPath);
/* Set the progress bar and message display functions callbacks */
vsLogMsg.logMessage = DisplayMessage;
vsLogMsg.initProgressBar = InitPBar;
vsLogMsg.loadBar = lBar;
setDisplayCallbacks(vsLogMsg);
/* Set DLL verbosity level */
setVerbosityLevel(verbosityLevel = VERBOSITY_LEVEL_3);
}
int main()
{
stLinkInit();
debugConnectParameters *stLinkList;
debugConnectParameters debugParameters;
int getStlinkListNb = getStLinkList(&stLinkList, 0);
stLinkList[0].connectionMode = NORMAL_MODE;
stLinkList[0].resetMode = CORE_RESET;
/* Target connect */
int connectStlinkFlag = connectStLink(stLinkList[0]);
if (connectStlinkFlag != 0) {
logMessage(Error, "Establishing connection with the device failed blerg\n");
disconnect();
}
else {
logMessage(GreenInfo, "\n--- Device %d Connected --- \n",index);
}
return 0;
}
Just in case, this is my Makefile for the project:
# Compiler
CC = clang++
# INCLUDE_PATH = -I/usr/local/opt/curl/include
INCLUDE_PATH = -I/Applications/STMicroelectronics/STM32Cube/STM32CubeProgrammer/STM32CubeProgrammer.app/Contents/MacOs/api/include
# LIB_PATH = -L/usr/local/opt/curl/lib -lcurl
LIB_PATH = -L/Applications/STMicroelectronics/STM32Cube/STM32CubeProgrammer/STM32CubeProgrammer.app/Contents/MacOs/bin -lCubeProgrammer_API
#
# Compilation and linking
#
# Add this to shell's vars: DYLD_LIBRARY_PATH=/Applications/STMicroelectronics/STM32Cube/STM32CubeProgrammer/STM32CubeProgrammer.app/Contents/MacOs/bin
all: main.o DisplayManager.o
${CC} -g ./out/main.o ./out/DisplayManager.o ${LIB_PATH} -o ./out/main.out
main.o:
${CC} -g -c main.cpp ${INCLUDE_PATH} -o ./out/main.o
DisplayManager.o:
${CC} -g -c DisplayManager.cpp ${INCLUDE_PATH} -o ./out/DisplayManager.o
clean:
rm -r ./out/*
2021-04-13 09:49 AM
Hello,
That's a good observation, but it's not the problem. That's because I didn't connect stlink's vcc detection pin, which is not used for communication.
It is worth to mention that I am able to interact with my device using STMCubeProgrammer, STMCubeProgrammer CLI and STMCube IDE. I would say the problem is something related to the C++ API dependencies/linker.
2021-04-13 08:58 PM
When I succeed, I must share this good news; I use USB_Example as an example;
At first I thought the typesetting was wrong, so I used the same as STBut he still can't
Until I added this folder, it succeeded!
2021-04-13 08:59 PM
Sorry, the first picture is at the end
2021-04-14 01:19 AM
Hi,
Thank you for answering. I thought that if the read Vcc was too low, the API would stop right there but apparently that is not the case.
Best regards and good luck
2021-04-14 05:34 AM
That's good news!
If I understood correctly, you just added the folder `Data_Base` to your project?
2021-04-14 05:36 AM
Must be added in the upper directory of the directory where the .exe is located
2021-04-14 07:30 AM
2023-07-25 02:14 AM - edited 2023-07-25 02:16 AM
Thanks, I made a python module for CubeProgrammer API, and