1222|3

1521

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

【CH32X035 DIY】+U盘读写与花样文件参数拾取 [复制链接]

  本帖最后由 jinglixixi 于 2024-2-3 23:28 编辑

在绣花机的仿真系统中,涉及花样文件读取及参数提取,对于一个裸机系统要解决这个问题是比较费事的。

那么在CH32X035评估板上要解决这方面的问题又怎样呢?

回答是较为方便的,因为它自身就配有极强的U盘读写能力。

要进行U盘的读写,其硬件连接如图1所示。

其中,电源是由USB转TTL模块提供的,并以此来实现串行通讯功能。对于U屏则是通过转换接口来实现。

 

图1 硬件连接

 

在对例程进行修改的情况下,可顺利地读取文件的数据,见图2和图3所示。

 

图2 读取U盘文件

 

 

图3 读取文件数据

 

对于绣花机所使用的花样文件,它是一种与位图文件相近的文件,它分为文件头、数据体这2个主要部分。

其文件头的数据格式如图4所示,是对文件的整体描述。

 

图4前导数据格式

 

那么如何来提取这些数据呢?

TotalCount = 125;     // 设置读取字节长度
strcpy( (char *)mCmdParam.Open.mPathName, "/JZ.DST" );
CHRV3FileOpen( );    // 打开文件
printf( "读出的前%d个字符是:\r\n",TotalCount );
j=0;
while ( TotalCount )
{
if ( TotalCount> (MAX_PATH_LEN-1) )
{
    t = MAX_PATH_LEN-1;  // 剩余数据较多,限制单次读写的长度不能超过
}
else
{
    t = TotalCount;        // 最后剩余的字节数
}
mCmdParam.ByteRead.mByteCount = t;  // 请求读出几十字节数据
mCmdParam.ByteRead.mByteBuffer= &Com_Buffer[0];
ret = CHRV3ByteRead( );             // 以字节为单位读取数据块,单次读写的长度不能超过MAX_BYTE_IO,第二次调用时接着刚才的向后读
mStopIfError( ret );
TotalCount -= mCmdParam.ByteRead.mByteCount;  // 计数,减去当前实际已经读出的字符数
if ( mCmdParam.ByteRead.mByteCount< t ) //实际读出的字符数少于要求读出的字符数,说明已经到文件的结尾
{
printf("\r\n" );
printf( "文件已经结束\r\n" );
break;
}
if(j==0)
{
   for ( i=0; i!=3; i++ )
   {
       printf( "%c", mCmdParam.ByteRead.mByteBuffer[i] ); // 显示读出的字符
   }
   printf("\r\n" );
   j=1;
}
if(j==1)
{
   for ( i=3; i!=20; i++ )
   {
       printf( "%c", mCmdParam.ByteRead.mByteBuffer[i] ); //显示读出的字符
   }
   printf("\r\n" );
   j=2;
}
if(j==2)
{
   for ( i=20; i!=23; i++ )
   {
       printf( "%c", mCmdParam.ByteRead.mByteBuffer[i] ); //显示读出的字符
   }
   printf("\r\n" );
   j=3;
}
if(j==3)
{
   for ( i=23; i!=31; i++ )
   {
       printf( "%c", mCmdParam.ByteRead.mByteBuffer[i] ); //显示读出的字符
   }
   printf("\r\n" );
   j=4;
   }
}
...
i = CHRV3FileClose( );  //关闭文件
mStopIfError(i );
}

该程序实现的参数提取效果如图5和图6所示。

 

图5 提取首个参数

  

 

图6 提取前4个参数

最新回复

送太多了,哈哈哈哈   详情 回复 发表于 2024-2-4 09:08
点赞 关注(1)
 
 

回复
举报

365

帖子

0

TA的资源

版主

沙发
 

值得学习,之前沁恒也是做活动比较多,填资料就送板子

点评

如今不如之前那么大方了  详情 回复 发表于 2024-2-3 23:30
 
 
 

回复

1521

帖子

1

TA的资源

五彩晶圆(初级)

板凳
 
LitchiCheng 发表于 2024-2-3 22:11 值得学习,之前沁恒也是做活动比较多,填资料就送板子

如今不如之前那么大方了

点评

送太多了,哈哈哈哈  详情 回复 发表于 2024-2-4 09:08
 
 
 

回复

365

帖子

0

TA的资源

版主

4
 
jinglixixi 发表于 2024-2-3 23:30 如今不如之前那么大方了

送太多了,哈哈哈哈

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表