9527|6

1170

帖子

0

TA的资源

至上芯片

楼主
 

实现STC单片机内部EEPROM编程资料大放送 [复制链接]

自己改了个n年前用的小工具,用来实现PC机读取和编程STC单片机内部的EEPROM(数据Flash),软件冗余做得不完善,基本上能用。 下面是PC机运行软件的界面
此帖出自单片机论坛

最新回复

我现在也在做EEPROM的存储  详情 回复 发表于 2015-4-3 17:11
点赞 关注(1)
 

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

回复:实现STC单片机内部EEPROM编程资料大放送

楼主真牛,你用什么语言写的这个软件啊
此帖出自单片机论坛
 
 

回复

1170

帖子

0

TA的资源

至上芯片

板凳
 

回复: 实现STC单片机内部EEPROM编程资料大放送

都有些跟不上时代了,下面是宿主机与设备的通信协议 1,在tax_data_type.h文件中增设命令字,读取分析命令和返回数据的结构体 #define Rd24_All_Data 0x05 //读取E2prom中的所有数据到上位机。 #define Rd45_All_Data 0x06 //读取Flash中的所有数据到上位机。 /**************************************************************** 读取24器件全部数据命令 ****************************************************************/ typedef struct CMD05_PACK { INT8U Pack_Head[2]; INT8U Cmd; INT8U Pack_No; INT8U Length; INT8U Cs[2]; }Cmd05_Pack; typedef struct CMD05_OK_PACK //返回给宿主的数据包的结构体。 { INT8U Pack_Head[2]; INT8U Pack_No; INT8U Pack_Length; INT8U Rd_Data[128]; INT8U Cs[2]; }Cmd05_Ok_Pack; /**************************************************************** 读取45器件全部数据命令 ****************************************************************/ typedef struct CMD06_PACK { INT8U Pack_Head[2]; INT8U Cmd; INT8U Pack_No; INT8U Length; INT8U Cs[2]; }Cmd06_Pack; typedef struct CMD06_OK_PACK //返回给宿主的数据包的结构体。 { INT8U Pack_Head[2]; INT8U Pack_No; INT8U Pack_Length; INT8U Rd_Data[128]; INT8U Cs[2]; }Cmd06_Ok_Pack; //----------------------1级菜单命令,长度为7位--以1b 10开头----------- //联机命令: 1b 10 00 00 05 88 00 //读AT256 1b 10 05 00 05 88 00 //读FLAsh 1b 10 06 00 05 88 00 //擦除FLASH的扇区 1b 10 12 00 05 88 00 //上位机后续数据包为OK + 00 +08+(2字节的数据扇区号)+CS //----------------------2级菜单命令,长度自定义------------- //读下1包 4e 50 00 06 00 00 88 00 //读取结束  45 52 00 06 00 99 00 00 //通讯协议过程: 1、税控器收到 0x1b+0x10+05(06)+00+05+CS时启动读取存贮器所有存贮单元的操作 2、税控器发送第1包数据(128字节)格式 OK+00+132+(128个数据)+CS,等待接收命令 3、上位机收到数据包后,进行处理(数据校验+是否结束联机操作)  #if(check) then 发送命令 'N''P'(4e 50)+00+06+接收到的数据包序号(16位)+CS #ELSE 发送命令 'E''R'(45 52)+00+06+错误代码(16位)+CS (错误号=99表示接收数据已完成) #endif 4、税控器收到上位机的命令后,进行判断 while(1) { if(cmd_head=NP) 发送下1个数据包,按前述2的格式 elseif(错误号=99) return 结束当前处理过程 else 重发上1包数据 } //24256其32K空间 ,共计32*8=256包 //45161共2m空间, 共计2*1024*8=16384包 5、税控器收到 0x1b+0x10+07+xx+05+CS时启动将xx的内容写入Flash存贮器所有存贮单元的操作 //写Flash存贮器命令 1b 10 07 88 05 00 00 将88写入Flash器件的所有单元 //写EEprom存贮器命令 1b 10 08 88 05 00 00 将88写入I2C器件的所有单元 //读EEprom存贮器命令 1b 10 09 00 05 00 00  读取I2C器件的部分单元的数据。 //      数据包 4e 50 09 00 08 23 56 78 00 00 其中23 56为起始地址 78为长度。 //读Flash存贮器命令 1b 10 10 00 05 00 00  读取Flash器件的部分单元的数据。 //      数据包 4e 50 10 00 10 03 56 78 99 64 00 00其中03 56 78 99为起始地址 64为长度。 //扇区擦除命令 1b 10 12 00 05 00 00 // 数据包4e 50 12 00 07 00 01 00 00 其中00 01 代表扇区 //读取实时时钟到上位机命令1b 10 61 00 05 00 00 //写数据到实时时钟的命令 1b 10 52 00 05 00 00 // 数据包为 4e 50 52 00 11 04 04 08 20 46 00 00 00
此帖出自单片机论坛
 
 
 

回复

23

帖子

0

TA的资源

一粒金砂(高级)

4
 
正研究这个问题呢,一起学习啊
此帖出自单片机论坛
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

5
 
怎么看不到软件呢
此帖出自单片机论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 
谢谢分享!!!!!!!!!!!!!!!!!!
此帖出自单片机论坛
 
 
 

回复

169

帖子

0

TA的资源

一粒金砂(中级)

7
 
我现在也在做EEPROM的存储
此帖出自单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表