我没有用过vb,但是可以给你说一下用C语言读取文件的细节,希望对你有所帮助。
首先,你提到的txt,dat文件,这些是一般的文本文件,你可以用写字板之类的程序打开,但是ld2文件不能这样打开开,首先就是它有128个字节的数据头,所以你得查查用vb怎么读取二进制文件。你先读取那128个字节,其中有很多信息,你可以看看给你的程序的public.h文件,有两个变量要注意,就是这个ld2文件的行数和列数,如果这两个数据读出来是400*300,表示这个ld2文件所表示的图像信息有400行,300列,这就有120000个数据点,其中每个数据占两个字节,所以你想读第一个通道的数据,就要从第129个字节开隐搭如始,一直读到128+240000个字节的地方,读取出来的数据全部除10,即是真实数据。读取第二个通道的数据从129+240000字节开始一直到128+240000+240000字节处,整个ld2文件中有多少通道,可以在128字节的数据头中读出来。
C的写法:
1.
int fp=open(file_path,mode...)
2.
read(fp,buffer,buffer_size)//这里先读取128字节,所以buffer长度也是128字节
3.
从数据头中取得相应的信息,比如卫星号,时间,数据大小,通道数等等
4.
read(fp,data_buffer,data_buffer_size)//这里正式开始读取数据信息,data_buffer大小要根据前面所说来的换算
5.
读取完毕以后你就可以保存成你想要的格式,比枝弯如dat、txt等等。
6.
close(fp)//关闭文件
环境:
ubuntu 13.10
stm32f103zet6
一、STM 32 GCC 安装
stm32 属于arm cortex-m系列thumb指令集,所以给arm用的arm-none-eabi就可以了,首先是下载
下载地址:
https://launchpad.net/gcc-arm-embedded/+download
下载其中的gcc-arm-none-eabi-version-linux.tar.bz2
解压到目录会产肢茄生gcc-arm-none-eabi的文件夹
把该编译器添加到用户的环境中:
在最后一行添誉侍加:
因为之前有添加过树莓派的编译器了,所以实际上是这样的:
两个编译器环境中间用冒号隔开
注销后测试:
可以查看到该编译器的版本,就表示可以了。
二、工程环境的建立
新建个工程文件夹及其目录
下载安装官方库:
1、stm32的寄存器不像51 avr等单片机那么少,自己写写库,背背寄存器就可以了,所以ST公司提供了官方的库。为了避免重复造轮子,就庆饥吵直接采用其库,库版本为STM32_USB-FS-Device_Lib_V4.0.0,这个库多了usb支持,下载的话到st官网搜索stm32f10x就有了。
2、解压把解压好的文件夹复制到刚才新建的libs里面.
3、在工程根目录下新建Makefile.common文件,这个为通用makefile。
编译库文件:
进入libs文件夹,新建Makefile:
编译该库:
就会在lib目录下生成libstm32.a,这个就是编译好的静态库了。
建立工程编译ld文件
这个ld文件,为在编译时告诉编译器把代码放到什么地址,根据芯片的内存以及flash容量不同有所调整。
在工程根目录下新建linker.ld文件
根据芯片型号不同,选择相应的RAM FLASH大小。
在工程根目录下新建Makefile文件:
在src里面添加测试源码,主要是startup.c 以及main.c。
然后进入工程主目录下make就好了。
设置如下,打开Eclipse安装目录下的configuration文件夹,悔孙乱删除当中的所有目凯伏录,只保留config.ini文件和碧档org.eclipse.equinox.simpleconfigurator目录(如果你的Eclipse有这个目录的话),重启Eclipse欢迎分享,转载请注明来源:内存溢出
评论列表(0条)