麻烦问一下 我通过串口向u盘里写数据,每次写完后自动换行,但累计到512时不能写完整,下次在写数据时又正常,但再次累计到512时又出现写数据不完整现象,请问是什么问题 怎样能解决这个问题?
执行WR_REQ_DATA返回的第一个数据位可以写的长度,是要根据这个值来决定后续写多少字节。
如果用串口和ch376通讯的话是接收write的中断返回值在决定后续写多少个字节吗?
不是中断返回值,是执行WR_REQ_DATA返回的第一个字节表示的数据长度。
jie 老师好:
我也遇到同样的问题,采用CH376芯片,串口通信方式;要把大容量的存储器里面的数据导出到U盘(平时不插U盘,存储一段时间后用U盘导出来)。 28号上午电话沟通可能更好。
写TXT文件,23行数据出现故障,实际有效数据为 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 34 37 2C 20 4F 4E 0D 0A。 合计23个字符;则22*23=506字符。
导出到U盘的22行数据。这是正确的。
----- 串口监测到的格式, 下面写TXT文件是22行-,最后一行是关闭文件命令----
57 AB 01 57 AB 15 06 57 AB 30 57 AB 22 57 AB 31 57 AB 22 57 AB 2F 5C 34 33 32 31 39 37 2D 31 2E 43 53 56 00 57 AB 34 57 AB 22 57 AB2F 5C 34 33 32 31 39 37 2D 31 2E 43 53 56 00 57 AB 32 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 34 37 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 34 37 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 34 37 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 34 38 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 34 38 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 34 38 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 34 39 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 34 39 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 30 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 30 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 30 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 31 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 31 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 31 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 32 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 32 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 32 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 33 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 33 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 33 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 34 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 34 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 36 01 57 AB 22
----- 下面写TXT文件是23行,在最后一个 57 AB 22命令,应该是没有得到返回数据-----
57 AB 01 57 AB 15 06 57 AB 30 57 AB 22 57 AB 31 57 AB 22 57 AB 2F 5C 34 33 32 31 39 38 2D 31 2E 43 53 56 00 57 AB 34 57 AB 22 57 AB 2F 5C 34 33 32 31 39 38 2D 31 2E 43 53 56 00 57 AB 32 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 34 37 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 34 37 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 34 37 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 34 38 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 34 38 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 34 38 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 34 39 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 34 39 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 30 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 30 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 30 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 31 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 31 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 31 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 32 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 32 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 32 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 33 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 33 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 33 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 34 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 34 2C 4F 46 46 0D 0A 57 AB 3D 57 AB 22
57 AB 3C 17 00 57 AB 22 57 AB 2D 31 39 2D 31 32 2D 32 37 2C 31 37 3A 30 37 3A 35 34 2C 20 4F 4E 0D 0A 57 AB 3D 57 AB 22
57 ab 22命令应该不会没有返回的。整体流程是对的,但是因为看不到接收的值与中断,所以需要提醒的是,命令里面查命令中断状态的,57 ab 22执行之前,INT引脚必须为低电平,即产生了中断。
老师好:
串口方式 ,单片机向U盘写txt文件。
采用例子程序
中间有加延时 在 57 AB 31 前后也有加延时。 写模式05返回错误代码。
如果这个问题我这边处理不好, 那么就用模式06,是否可以?
xWriteCH376Data( 0x05 );监测到的串口字符:
57 AB 06 65 57 AB 15 05 57 AB 22 57 AB 30 57 AB 22 57 AB 31 57 AB 22
返回字符
9A 51 15 15 14 14 20 20
----------
xWriteCH376Data( 0x06 );监测到的串口字符:
57 AB 06 65 57 AB 15 06 57 AB 22 57 AB 30 57 AB 22 57 AB 31 57 AB 22
9A 51 15 15 14 14 14 14
返回字符
可以。这种情况下推荐用模式6,模式5会存在部分U盘不兼容的情况。