OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 1429|回复: 7

关于Ymodem协议使用上位机软件

[复制链接]

  离线 

6

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2014-7-18
在线时间
23 小时
发表于 2017-2-16 17:18:55 | 显示全部楼层 |阅读模式
1金钱
最近在做Ymodem协议的IAP在线编程,感觉超级终端这个软件有点太过简单了。有没有朋友推荐一个功能比较齐全的工具软件,例如可以选择128字节一个数据包或者1024字节一个数据包等等..

回复

使用道具 举报

  离线 

512

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
133765
金钱
133765
注册时间
2010-12-1
在线时间
1281 小时
发表于 2017-2-16 19:02:54 | 显示全部楼层
自己写最符合你的要求了
回复

使用道具 举报

  离线 

116

主题

7627

帖子

12

精华

资深版主

Rank: 8Rank: 8

积分
11180
金钱
11180
注册时间
2013-9-10
在线时间
366 小时
发表于 2017-2-18 11:06:39 | 显示全部楼层
正点原子 发表于 2017-2-16 19:02
自己写最符合你的要求了

简单粗暴的回复啊
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

  离线 

1

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2016-10-28
在线时间
26 小时
发表于 2017-2-21 14:55:04 | 显示全部楼层
去年用MFC 做了个类似的东西,一直忙还没有加入Ymodem协议,如果楼主能搞得定,可以给楼主。
回复

使用道具 举报

  离线 

6

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2014-7-18
在线时间
23 小时
 楼主| 发表于 2017-2-21 18:17:26 | 显示全部楼层
makc 发表于 2017-2-21 14:55
去年用MFC 做了个类似的东西,一直忙还没有加入Ymodem协议,如果楼主能搞得定,可以给楼主。

MFC不太懂,暂时用着Xshell 5
回复

使用道具 举报

  离线 

13

主题

68

帖子

0

精华

高级会员

Rank: 4

积分
558
金钱
558
注册时间
2017-8-14
在线时间
109 小时
发表于 2017-11-30 13:50:18 | 显示全部楼层
正点原子 发表于 2017-2-16 19:02
自己写最符合你的要求了

原子哥我在QT平台做了一个自动升级软件,基于YModem的。
完成后,我给单片机烧写.bin文件,显示烧写成功了,但是单片机启动后还是没程序,但是用超级终端烧是可以的。 是文件格式发送对了但是数据错了,还是怎么回事  求解啊  谢谢谢谢
yi?我的二哈哪去了
回复

使用道具 举报

  离线 

19

主题

272

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1437
金钱
1437
注册时间
2017-7-6
在线时间
204 小时
发表于 2017-12-1 11:55:42 | 显示全部楼层
楼主你看ymodem源码了吗?在发数据的时候数据不满1K就是按128字节发的啊
回复

使用道具 举报

  离线 

19

主题

272

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1437
金钱
1437
注册时间
2017-7-6
在线时间
204 小时
发表于 2017-12-1 11:57:32 | 显示全部楼层
      if (size >= PACKET_1K_SIZE)
      {
        pktSize = PACKET_1K_SIZE;
      
      }
      else
      {
        pktSize = PACKET_SIZE;
      }
      Ymodem_SendPacket(packet_data, pktSize + PACKET_HEADER);
      /* Send CRC or Check Sum based on CRC16_F */
      /* Send CRC or Check Sum based on CRC16_F */
      if (CRC16_F)
      {
         tempCRC = Cal_CRC16(&packet_data[3], pktSize);
         Send_Byte(tempCRC >> 8);
         Send_Byte(tempCRC & 0xFF);
      }
      else
      {
        tempCheckSum = CalChecksum (&packet_data[3], pktSize);
        Send_Byte(tempCheckSum);
      }

我是在YMODEM发送函数摘取其中一段代码,PACKET_SIZE就是128字节
回复

使用道具 举报

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

本版积分规则




关闭

报名原子哥新品发布会&粉丝见面会上一条 /1 下一条

正点原子公众号

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-10-21 01:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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