OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11872|回复: 3

VC++编写串口下载工具(带加密)源码?

[复制链接]

4

主题

5

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2011-11-18
在线时间
3 小时
发表于 2011-11-18 10:33:18 | 显示全部楼层 |阅读模式
官网有下载工具,但是功能不支持加密,容易被他人提取。
想自己做个下载工具,读取序列号并绑定后再下载进去,有哪位大侠有相关代码或资料的?
望多指教!!!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-11-18 12:38:23 | 显示全部楼层
回复【楼主位】cwx133:
---------------------------------
读取序列号是简单,关键你的绑定如何做?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

5

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2011-11-18
在线时间
3 小时
 楼主| 发表于 2011-11-18 18:31:58 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
绑定已经有思路可以先放一放,问题是不能下载进去(用其他工具可以下载),找了一份源码(用官网STBLLIB.lib做的),
中途出错,要么是COM_Open打不开串口,要么是STBL_Init_BL初始化bootloader失败,不知何解?
作者也联系不上,贴源码出来,请原子指点,另外STBL_GET_ID是读取序列号吗?

using namespace std;
#include "stbllib.h"
#pragma comment(lib,"stbllib.lib")//

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;
int ret=0;
int com =pnCOM1;

char filename[512] = "D:\\ss.bin" ;

TARGET_SetComIntType(0);
  
for(com=pnCOM1;com<9;com++)
{
// 设置串口为COM1-9,波特率为56000 ,8BIT, 校验模式EVEN  , 停止位1
SetCOMSettings(com, br56000 ,db8BITS,ptEVEN ,  sb1BITS );

ret = COM_Open() ; 
if(ret == SUCCESS )
break;
}
if(ret == SUCCESS )
cout<< "com" << com <<" open ok [ok]\n" ;
else
{
cout << "com open error \n" ;
return nRetCode ;
}

//打开串口
ret = COM_is_Open() ;
if(ret != TRUE) 
{
cout << "com can not open " <<endl ;
return nRetCode;
}

unsigned long id = 0  ;
char size = 8;

//初始化芯片的Bootloader程
ret = STBL_Init_BL() ;

if(ret == SUCCESS )
{
cout ><< "st bootloader init [ok] \n" ;
}
else
{
cout <<"st bootlaoder init error \n" ;
return nRetCode ;
}

//ret = sizeof(id) ;
Commands  cmd  = { 0};
BYTE vir  = 0 ;
//获取Bootloader的版本号,和支持的命令
ret = STBL_GET( &vir , &cmd  ) ;

if(ret == SUCCESS )
{
cout << "st bootloader version   " << (int )vir /16 << "." << (int )vir%16 <<endl ; 
}
else
{
cout ><< "get cmd error \n";
}

//得到芯片的PID
ret = STBL_GET_ID((unsigned char *)&size  ,(unsigned char *)&id ) ;
if(ret == SUCCESS )
{
cout << "st pid: "<<id ><<endl ;
}
else
{
cout << "stbl get id error " << ret ;

}

return nRetCode;
}

回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2012-2-9
在线时间
0 小时
发表于 2012-2-9 20:28:30 | 显示全部楼层
请问楼主,问题解决了吗,我也在用VC做STM8的下载工具,想请教你一下!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 22:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表