1、如下为.dat文件中文件头的基本格式:

MagicNumber Format StartingAddress PageNum Length [NewFormat]

下面是分别的解释:

MagicNumber:1651.

Format:a number from 1 to 4, indicating the format of the samples in the file. This number represents a data format:

(1) - hexadecimal,

(2) - integer

(3) - long

(4) - float

(9) - Use new scheme

StartingAddress:starting address of the block that was saved.

PageNum:page number the block was taken from.

Length:number of samples in the block.

NewFormat:Format (9); the new scheme. This is optional when usign the legacy formats 1 - 4

如下例子中的数据:

1 1651 2 8cc0 0 1a70c2 793 744 745 676 ...7 ...

第一行的数据为:1651 2 8cc0 0 1a70c

1651标志着这是TI的.dat文件的格式。

2表示了这个文件中的数据是整数格式的,比如第二行的数据79是interger的格式。

8cc0表示这段数据Load Memory到CCS软件的过程中,是加载到0x8cc0对应的地址上的。

0表示这段数据将加载到page0的位置上。

1a70c表示这段数据的总长度为0x1a70c(Hex) = 108300(Decimal)

2、创建图像对应的.dat文件:

如下的图片,转换为190*190大小的图片,并生成对应的.dat文件.

Code(文件名称:_dat_create.py):

1 importcv22 importglob3 Path = glob.glob('*.jpg')4 count =05 for Pic inPath:6 I =cv2.imread(Pic)7 res = cv2.resize(I,(190,190),interpolation=cv2.INTER_CUBIC)8 Name = "Test" +str(count)9 cv2.imwrite(Name + ".png",res)10 fid = open(Name + ".dat",'w')11 fid.write('1651 2 8cc0 0 1a70c'+'\n')12 width,height = res.shape[:2]13 for channel in range(3):14 for row inrange(height):15 for col inrange(width):16 fid.write(str(res[row][col][channel])+'\n')17 count += 1

将上述代码以及要处理的图片拷贝到同一个目录下,双击运行python脚本文件即可生成:

我们可以通过修改代码中的190*190的图像尺寸来生成不同的图像数据,并生成对应的.dat文件。

3、创建音频对应的.dat文件:

如下链接中的单音音源sin.wav,生成对应的.dat文件.

Code(文件名Audio2Dat.py):

1 from scipy.io.wavfile importwrite, read2 importnumpy as np3 importmath4 importglob5 importsys6 importos7

8 INT16_FAC = (2**15)-1

9 INT32_FAC = (2**31)-1

10 INT64_FAC = (2**63)-1

11 norm_fact = {'int16':INT16_FAC, 'int32':INT32_FAC, 'int64':INT64_FAC,'float32':1.0,'float64':1.0}12

13 defwavread(filename):14 """

15 Read a sound file and convert it to a normalized floating point array16 filename: name of file to read17 returns fs: sampling rate of file, x: floating point array18 """

19 if (os.path.isfile(filename) == False): #raise error if wrong input file

20 print("Input file does not exist. Make sure you computed the analysis/synthesis")21

22 fs, x =read(filename)23

24 if (len(x.shape) !=1): #raise error if more than one channel

25 raise ValueError("Audio file should be mono")26

27 if (fs !=44100): #raise error if more than one channel

28 raise ValueError("Sampling rate of input sound should be 44100")29

30 #scale down and convert audio into floating point number in range of -1 to 1

31 x = np.float32(x)/norm_fact[x.dtype.name]32 returnfs, x33

34 path = glob.glob('*.wav')35 count = 1

36 for p inpath:37 fs, dat =wavread(str(p))38

39 fid = open(str(count)+'.dat','w')40 #flie·Magic=1651 X=9 data·StartAddress=0x80000000 X=0 data·Number(Hex)=0x7a120 X=5

41 fid.write('1651 9 80000000 0 7a120 5'+'\n')42 for i indat:43 fid.write(str(i)+'\n')44 fid.close()45 count += 1

将上述代码以及要处理的图片拷贝到同一个目录下,双击运行python脚本文件即可生成.dat文件:

结果如下:

1 1651 9 80000000 0 7a120 5

2 0.0

3 0.05011866

4 0.10004042

5 0.14956915

6 0.19851027

7 ...8 ...

参考内容:

ccs读取dat文件c语言程序,TMS320DM642学习----第六篇(CCS中.dat文件类型详解)相关推荐

  1. python开发的程序中以电子表格显示数据_使用 Python 读取电子表格中的数据实例详解...

    Python 是最流行.功能最强大的编程语言之一.由于它是自由开源的,因此每个人都可以使用.大多数 Fedora 系统都已安装了该语言.Python 可用于多种任务,其中包括处理逗号分隔值(CSV)数 ...

  2. R语言使用basename函数获取数据链接地址中的文件名称(removes all of the path up to and including the last path separator )

    R语言使用basename函数获取数据链接地址中的文件名称(removes all of the path up to and including the last path separator (i ...

  3. 经典C语言程序100例之八六

    经典C语言程序100例之八六 如题 话不多说了,直接上代码 如题 [程序86] 题目:两个字符串连接程序 1.程序分析: 话不多说了,直接上代码 2.程序源代码: #include "std ...

  4. 经典C语言程序100例之七六

    经典C语言程序100例之七六 如题 话不多说了,直接上代码 如题 [程序76] 题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+-+1/n,当输入n为奇数时,调用函数 1/1+1/3+- ...

  5. 经典C语言程序100例之五六

    经典C语言程序100例之五六 如题 话不多说了,直接上代码 如题 [程序56] 题目:画图,学用circle画圆形. 1.程序分析: 话不多说了,直接上代码 2.程序源代码: /circle/ #in ...

  6. python上传文件接口_python程序的web接口:上传和下载文件

    我正在尝试制作一个简单的web应用程序,其中可以上载一个文件并将该文件提供给python脚本.烧瓶似乎适合这种用途.然后,用户可以从脚本下载文件输出.请告诉我如何解析python脚本中的文件并获得输出 ...

  7. c 语言程序编辑,C语言程序编辑学习篇—编程者说之C语言

    谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是"让我欢喜让我忧."欢喜的是,C语言功能非常强大.应用广泛,一旦掌握了后,你就可以理直气壮地对他人说"我是电脑高手 ...

  8. 网络安全学习第6篇 - 爆破及PE文件解释

    1.请采用暴力破解的方式去尝试破解crack.exe文件(在实验报告中说明破解原理即可,无需提交破解后的文件) 2.请依据参考文档中的内容编写一个小程序,使其可以实现如下功能: ①判断一个文件是否为P ...

  9. C语言结构体中定义函数指针详解

    C语言结构体中定义函数指针详解 结构体指针函数应用场景之一--驱动程序编写 结构体的一些基本用法 形式1:先定义结构体类型,再定义变量 形式2:在定义类型的同时定义变量 形式3:直接定义变量,用无名结 ...

最新文章

  1. Eclipse如何生成jar包
  2. linux 产生三位数的随机数
  3. 不允许使用java方式启动_细品 Java 中启动线程的正确和错误方式
  4. 【原题】【noip 2003 T2】【动态规划】加分二叉树
  5. android 测光模式,Android Camera1中的对焦与测光
  6. android onitemclicklistener 参数,android – 对listview中的项使用setOnItemClickListener
  7. discuz2.0升级后不能自动跳转问题
  8. 简单电脑***《菜鸟级》
  9. 浏览器保存图片时,将jfif改为jpg格式
  10. 华为手机如何更新鸿蒙系统_华为鸿蒙系统怎么升级?升级鸿蒙系统步骤
  11. 二等分计算机打印机尺寸,电脑打印纸三种等分是什么尺寸
  12. html在字体两边加直线,css怎么在文字两边加上横线
  13. 单播、多播(组播)和广播的差别
  14. 一度智信电商:教你几招,轻松利用微信给店铺引流
  15. 2018.8.21 广州科目三展茂东满分飘技巧
  16. 阿里云对象存储OSS配置了cnd之后产生的外网流出流量费用
  17. 中国第一代程序员列传 我的偶像
  18. 蓝桥杯-递归-母牛生小母牛
  19. 内存不能为read修复工具
  20. 连接型CRM助力医疗企业把“成本中心”变成“利润中心”

热门文章

  1. java多线程之生产者和消费者问题
  2. node.js ejs的视图模块引擎
  3. tensorflow2.0学习(一)
  4. 透析阿里云视频云「低代码音视频工厂」之能量引擎——vPaaS视频原生应用开发平台
  5. 平台式可复用的应用集成能力,助您敏捷、高效的完成企业数字化转型
  6. 上海鸥新:基于大数据的商场实时客流分析系统
  7. 网络数据隐私保护,阿里工程师怎么做?
  8. MaxCompute SQL原理解析及性能调优
  9. 低代码会让程序员更加内卷吗?
  10. “编程能力差,90%输在了选择上!”CTO:多数程序员都是瞎努力!