本帖最后由 怂包BB 于 2020-2-13 15:47 编辑
新增两项方便传输文件至MCU
Xmodem128
- //Xmodem128的接收部分
- int bXmodem128Init(pcb_t fcb, psend fs); //初始化,注册回调以及指定发送字节的函数
- int bXmodem128Parse(uint8_t *pbuf, uint8_t len);
- //数据解析,接收到数据后调用此函数。需要将一段数据接收完成后再调用此函数,不能一个字节一个字节的往里放
- int bXmodem128Start(void); //启动接收
- int bXmodem128Stop(void); //中断接收
- void bXmodem128Timeout(void); //判断超时,由bExec()调用
-
- typedef void (*pcb_t)(uint8_t number, uint8_t *pbuf);
- //回调函数,number为序号,pbuf为数据指针。每次的数据长度都是128字节
复制代码
Ymodem
- int bYmodemInit(pymcb_t fcb, pymsend fs); //初始化,注册回调以及指定发送字节的函数
- int bYmodemParse(uint8_t *pbuf, uint16_t len);
- //数据解析,接收到数据后调用此函数。需要将一段数据接收完成后再调用此函数,不能一个字节一个字节的往里放
- int bYmodemStart(void); //启动接收
- int bYmodemStop(void); //中断接收
- void bYmodemTimeout(void); //判断超时,由bExec()调用
-
- typedef void (*pymcb_t)(uint8_t t, uint8_t number, uint8_t *pbuf, uint16_t len);
- //回调函数,t为数据类型(文件名/数据)number为序号,pbuf为数据指针,len为数据长度
复制代码
代码中有实例,利用Xmodem128和Ymodem接收文件,存储至spiflash内,传输结束后读取出来通过串口输出。实验效果:
|