OpenEdv-开源电子网

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

AD采样后写入 U盘是乱码

[复制链接]

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
发表于 2016-3-30 15:58:27 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 mengheli 于 2016-3-30 16:16 编辑

程序如下:
#include "sys.h"
#include "delay.h"  
#include "usart.h"   
#include "led.h"
#include "lcd.h"
#include "key.h"  
#include "usmart.h"  
#include "sram.h"   
#include "malloc.h"
#include "w25qxx.h"   
#include "sdio_sdcard.h"
#include "ff.h"  
#include "exfuns.h"   
#include "fontupd.h"
#include "text.h"        
#include "piclib.h"         
#include "usbh_usr.h"
#include "adc.h"

u16 a[1];
USBH_HOST  USB_Host;
USB_OTG_CORE_HANDLE  USB_OTG_Core;
void Save_To_USBSTORT(void)
{

          u32 br=0;
                FIL file;
                FRESULT res;
                 f_mount(fs[2],"2:",1);               
                res=f_open(&file,"2:/1.txt",FA_OPEN_ALWAYS | FA_WRITE);
        
        br=file.fsize;
        f_lseek(&file,br);
        f_puts((char *)&a,&file);
        
  f_close(&file);
        

}



u8 USH_User_App(void)
{
        u8 res=0;         
while(1)
        {
         u16 adcx;
   float temp;        
         adcx=Get_Adc_Average(ADC_Channel_5,20);
         temp=(float)adcx*(3.3/4096);
                a[0]=temp;
                temp-=a[0];
                a[1]=temp*1000;
                Save_To_USBSTORT();
   }
        
        return res;
}


int main(void)
{  

        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        delay_init(168);
        uart_init(115200);               
        LED_Init();                        
        KEY_Init();                        
        Adc_Init();
          LCD_Init();                                
        W25QXX_Init();                        
        usmart_dev.init(84);         
        my_mem_init(SRAMIN);        
         exfuns_init();                        
        piclib_init();                        
          f_mount(fs[0],"0:",1);
          f_mount(fs[1],"1:",1);           
          f_mount(fs[2],"2:",1);         
        POINT_COLOR=RED;      
                  
          USBH_Init(&USB_OTG_Core,USB_OTG_FS_CORE_ID,&USB_Host,&USBH_MSC_cb,&USR_Callbacks);  
        
        
        while(1)
        {
                USBH_Process(&USB_OTG_Core, &USB_Host);
                delay_ms(1);
        }        
        
}

只是把原子哥的AD库函数和U盘HOST库函数整合在了一起,数据写入U盘后全是如图的东西,为啥那?

07.png

最佳答案

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

f_puts((char *)&a,&file); 这样写入的是a的ASCII码值,而不是字符串。 比如,a=65(='A'),那么你在记事本看到的是字母A,而不是数字串"065".
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

228

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1730
金钱
1730
注册时间
2016-3-8
在线时间
678 小时
发表于 2016-3-30 15:58:28 | 显示全部楼层
f_puts((char *)&a,&file);

这样写入的是a的ASCII码值,而不是字符串。
比如,a=65(='A'),那么你在记事本看到的是字母A,而不是数字串"065".
回复

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
 楼主| 发表于 2016-3-30 18:01:00 | 显示全部楼层
本帖最后由 mengheli 于 2016-3-30 23:50 编辑

已解决,+48就行
回复

使用道具 举报

0

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2013-5-30
在线时间
3 小时
发表于 2016-6-5 10:04:11 | 显示全部楼层

你好,怎么解决的呀?没有看懂!最近也在做方面的东西!
做自己喜欢做的的事,爱自己所爱的人!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 11:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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