Gif2Bmp.rar
使用 mfc 开发的 将gif 每一帧提取出来 转换成 bmp的工具,因为单片机gif解码实在太慢了,先用空间换时间,放到25Q64里面
stm32_ucos_ch340.rar
stm32 用ucos 重写了 ch340 的usb枚举,流程更加明了,便于学习
ucos2重写stm32标准库的usb转串口demo
因为stm32的usb转串口demo的枚举过程是基于状态的,分析起来不明了,改为基于ucos2的基于过程,代码直接明了 分析起来
tcp转串口,使用libevent
在ubuntu里面使用 libevent 实现,作为
cryptopp810.zip
在 https://www.cryptopp.com/index.html#download 下载的最新代码
测试过 可以在 vs2010 vs2013 上编译通过, 官网下载太慢了,放到这里 大家下载快点
crypto++ 的820 库
u3dtcpsrv.rar
unity通过调用 c++ 的dll 实现 tcpserver,只接收一个客户端,实现跟客户端的数据交流
stm32isp.rar
C代码,接口简单明了,在本机测试通过可以正常读写stm32
串口设备默认是 ttyUSB0
int DemoPro(unsigned char *pdata,int len)
{
int ret=0;
stm32isp.fd=stm32isp.open();
printf("fd:%d\n",stm32isp.fd);
while(1){
if(TestLink()!=0) {ret= 1;break;} //握手失败
if(GetVersionAndCmd()!=0) {ret= 2;break;} //获取版本失败
printf("ver:%d.%d\n",stm32isp.ver>>4,stm32isp.ver&0x0f);
if(stm32isp.ver!=0x22) {ret= 3;break;} //下载器的版本不对,暂时只针对2.2版本的程序
if(GetProtectState()!=0) {ret= 4;break;} //其实读取不了是不是保护的状态的
if(GetStm32TypeId()!=0) {ret= 5;break;} //获得stm32的型号
printf("stm32 type:%X\r\n",stm32isp.typeid);
if(ReadMemory(0x1FFFF7E8,12,(unsigned char*)stm32isp.onlyId)!=0) //读取唯一id,读取失败则解锁再读取
{
printf("read id eror\n");
if(UnRdProtect()!=0) {ret= 6;break;}
continue;
}
else printf("stm32id:%08X%08X%08X\n",stm32isp.onlyId[0],stm32isp.onlyId[1],stm32isp.onlyId[2]);
if(EraseFlash()!=0)
{
//擦除失败 就擦除读保护
printf("Erase Chip error\n");
if(UnRdProtect()!=0) {ret= 7;break;}
continue;
}
//if(WriteMemory(0x8000000,sizeof(testcode),testcode)!=0) {ret= 8;break;}
//printf("Write Rom ok\n");
//if(EnRdProtect()!=0) {ret= 9;break;}
//printf("read protect\n");1
//if(EnWrProtectX(0,2)!=0) {ret= 10;break;}
//printf("write protect ok\n");
if(WriteBin2Flash(pdata, len)!=0) {ret= 8;break;}
if(VerifyRom(pdata, len)!=0) {ret= 9;break;}
if(EnWrProtectX(0,64)==0)
{
//写入写保护之后 系统会重启
if(TestLink()!=0) {ret= 1;break;} //握手失败
}else {ret= 10;break;}
if(RunProgram(0x8000000)!=0) {ret= 11;break;}
break;
}
stm32isp.release(stm32isp.fd);
return ret;
}
hisi_io_drv.rar
Hi3516Ev300 的io驱动,参考了mini2440 的led驱动开发
在测试demo里面会使得GPIO1_4切换高低电平
在console 先 insmod HiLed.ko
在 /dev 里面就会有设备 HiLed
然后运行 .\TestLed
就能用万用表看到 GPIO1_4 的电平切换
hisi_io_drv.rar
海思3516ev300 的 IO 驱动
GPIO1_4 参考 Mini2440 的io驱动 改动而来
里面写好了 makefile
gb2big.zip
为了单片机中简体转繁体字的字码
转换公式
简体字的 编码0 编码1
繁体字 编码0= gb2big[((简体字的 编码0 - 0xB0) * 0x5E + 简体字的 编码1 - 0xA1)*2]
繁体字 编码1= gb2big[((简体字的 编码0 - 0xB0) * 0x5E + 简体字的 编码1 - 0xA1)*2+1]
rtp转h264文件 将udp的数据保存成 h264
将rtp中的h264保存成文件,将udp包重新组包,为了实现摄像头数据的及时读取
rtp2h264.rar
visual C++ 的工程
实现rtp推流h264在vlc下播放,附带了h264文件,dsp文件
ComDlg.rar
串口的异步通信,实现了串口的发送接收,专门打开串口接收线程等待串口数据
bin2hex.rar
源码以及exe可执行文件
将bin文件转换为hex文件,因为很多烧录器都使用hex方式烧录
bin2hex abc.bin 0x8001000
abc.bin是bin文件
0x8001000 是 bin文件放入的hex地址
stm32利用spi驱动tm1803
stm32利用spi+dma 驱动 tm1803
测试可以驱动64个灯组没有压力,理论上可以驱动128个 tm1803
将游戏手柄按键映射到键盘
在linux下 将游戏手柄的按键 映射到 键盘 发送到系统消息中,
可以用游戏手柄玩本来只能键盘玩的游戏
串口发送按键信息
监控mfc窗体的按键,输出相应的按键信息,包含了代码和exe文件
基于COCOS2DX的推箱子 源代码
cocos2dx 推箱子 源代码
apk 的运行效果和 exe 有区别 不知道问题出在哪里
图像识别 对 点数 的识别
采用vc6编写
自动对亮度进行调整
里面有样品进行测试
无聊 为了找工作有作品面试所写
基于mega8的操作系统,类ucos
用mega8 实现两个任务
其实最多支持8个任务的,理论上
在m8上面应该能跑4-5个任务
里面是一个按键扫描 一个液晶显示的任务
因为用操作系统做菜单比较方便所以写的
推箱子 源代码 MFC
推箱子 源代码 MFC
纯鼠标操作 谢谢大家指正
QQ 191635418