AD采样后写入 U盘是乱码

2019-07-20 21:50发布

本帖最后由 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盘后全是如图的东西,为啥那?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
adlu
1楼-- · 2019-07-21 02:11
f_puts((char *)&a,&file);

这样写入的是a的ASCII码值,而不是字符串。
比如,a=65(='A'),那么你在记事本看到的是字母A,而不是数字串"065".
mengheli
2楼-- · 2019-07-21 04:39
本帖最后由 mengheli 于 2016-3-30 23:50 编辑

已解决,+48就行
蓝色风lyl
3楼-- · 2019-07-21 05:45
 精彩回答 2  元偷偷看……

一周热门 更多>