OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5086|回复: 4

我想把这样的数组BYTE text[]={0xAA, 0x6F,0xFF........} 写入到txt文档中成为AA 6F FF这种形式应该怎么办

[复制链接]

3

主题

11

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-4-27
在线时间
0 小时
发表于 2015-5-19 20:57:40 | 显示全部楼层 |阅读模式
5金钱
实在抱歉,小弟刚学stm32,表达能力有点欠佳
我现在需要的是把这样的一个数组
BYTE text[]={0xAA, 0x6F, 0xE4, 0x68, 0x99 ,0x11 ,
                     0x5F ,0x6F ,0xE4 ,0x68 ,0x99 ,0xBB};
这个数组是我用fft算法得到的,它是实时变化
我想要的是这个数组实时存入到txt文档中
AA 6F E4 68 99 11 5F 6F E4 68 99 BB这样的形式

如果直接用res = f_write(&fnew, text, sizeof(text), &bw);
写入数组到text的话,打开txt文档就是一堆乱码,
如果数组定义成
BYTE text[]={"0xAA, 0x6F, 0xE4, 0x68, 0x99 ,0x11 ,
                       0x5F ,0x6F ,0xE4 ,0x68 ,0x99 ,0xBB"};
f_write写入数组text,在txt中是这样的 
0xAA, 0x6F, 0xE4, 0x68, 0x99 ,0x11 ,0x5F ,0x6F ,0xE4 ,0x68 ,0x99 ,0xBB
而且后面还有一堆乱码,我不想要逗号和0x
所以我想知道我应该用哪些函数对这个数组进行转换才能实现我的目的
希望各路大神能给小弟我指点迷津。

最佳答案

查看完整内容[请看2#楼]

我找到原因了!把选项FA_OPEN_ALWAYS 改为FA_CREATE_ALWAYS就不会出现三倍数量的数据了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-4-27
在线时间
0 小时
 楼主| 发表于 2015-5-19 20:57:41 | 显示全部楼层
我找到原因了!把选项FA_OPEN_ALWAYS 改为FA_CREATE_ALWAYS就不会出现三倍数量的数据了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-5-19 22:46:41 | 显示全部楼层
第二种方式的时候, 把0x去掉即可
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-4-27
在线时间
0 小时
 楼主| 发表于 2015-5-20 11:27:08 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
谢谢原子哥,按照你说的以后又出现一个问题,再请教下就是我
往text文档里写入的数据变成了三倍的数量,具体看下程序和结果
 int main(void)
 {  

    FRESULT res; 
    BYTE textFileBuffer[]={"AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB"};
    u8 i;

    delay_init();       
    NVIC_Configuration();   
    uart_init(9600);  
    LED_Init();    
    KEY_Init();   
    exfuns_init();
    mem_init(SRAMIN);

    while(SD_Initialize())
    {
       delay_ms(200);
       LED0=!LED0;
    }    
    exfuns_init();     

    for(i=0;i<5;i++)
    {
        f_mount(0,fs[0]); 
        res = f_open(file, "0:newfile.txt", FA_OPEN_ALWAYS | FA_WRITE );
        if (res == FR_OK )
        { 
            f_lseek(file,f_size(file));
            res = f_write(file, textFileBuffer, sizeof(textFileBuffer), &bw);
            if(res == FR_OK )f_close(file);   
        }
    }                                  
}

按道理执行后txt文档里的数据应该是有5组的,如下
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB

但是实际的执行结果却变成了15组,如下所示
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB
AA, 6F, E4, 68, 99 ,11 ,5F ,6F ,E4 ,68 ,99 ,BB

这到底是怎么回事啊?是不是我的程序有问题
还有就是我通过fft算法计算后的到的数组是这样的形式的
BYTE text[]={0xAA, 0x6F, 0xE4, 0x68, 0x99 ,0x11 ,
             0x5F ,0x6F ,0xE4 ,0x68 ,0x99 ,0xBB};
里头的数字是随时间变化的,那么我要用哪些函数进行转换
才能使得最后存入到txt文档中的数字为
AA 6F E4 68 99 11 5F 6F E4 68 99 BB这种样式呢?

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-5-20 23:29:53 | 显示全部楼层
回复【3楼】yungealong:
---------------------------------
因为你写入的是ASCII,自然是3倍数据量。。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 18:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表