在帖子 请教怎么用st-link API或者dll读出stm32或者8的唯一ID 有人给出了如下答复:
在HaplSwim.dll里有个未公开的API:HReadByte,可以读取任意地址的值。
给出代码吧(以STM8L101为例):
typedef int (*HBeforeRead)(void);
typedef int (*HReadByte)(int,int,int,BYTE*);
HBeforeRead pHBeforeRead;
HReadByte pHReadByte;
HINSTANCE dll = LoadLibrary("C:\\Program Files\\STMicroelectronics\\st_toolset\\stvp\\HaplSwim.dll");
pHBeforeRead = (HBeforeRead)GetProcAddress(dll, "HBeforeRead");
pHReadByte = (HReadByte)GetProcAddress(dll, "HReadByte");
BYTE uid[12];
if((*pHBeforeRead)() == TRUE){
for(int i=0;i<12;i++){
(*pHReadByte)(4, 0x4925+i, 1, uid+i);
}
}
从代码中,我只能才出第二,第四参数的意思是,目标地址跟数据BUFFER,但第一、第三个参数是什么意思就没办法知道了。
因此想请教一下,HReadByte函数的各个参数分别是什么意思.
|