久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1393|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

MCU+FATFS讀出W25Q32數(shù)據(jù)后如何處理?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:813057 發(fā)表于 2020-10-12 23:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我使用的時W25Q32,目前把STATIC_CONFIG[]里面的內(nèi)容存儲在config.ini中,然后讀出來的時ASC碼,我想把ASC碼轉(zhuǎn)為對應(yīng)的文字信息,比如我想讀取前面幾個字符是不是"ADDR",目前只能使用if(read_buffer[ i]==0x41&&read_buffer[i+1]==0x44&&read_buffer[i+2]==0x44),請問怎樣轉(zhuǎn)化為對應(yīng)的字符串.[ i]
我使用了網(wǎng)上的CharToHex(unsigned char bHex)的MCU程序讀出來也無法直接使用.
下面是我的程序,求助大神幫我解決一下.
/////////////////////////////////////////////////////////////////////
//函 數(shù) 名:HexToChar()
//功能描述:把16進制轉(zhuǎn)換為ASCII字符
//函數(shù)說明:
//調(diào)用函數(shù):
//全局變量:
//輸 入:16進制
//返 回:ASCII字符
/////////////////////////////////////////////////////////////////////
unsigned char HexToChar(unsigned char bChar)
{
        if((bChar>=0x30)&&(bChar<=0x39))
        {
                bChar -= 0x30;
        }
        else if((bChar>=0x41)&&(bChar<=0x46))//大寫字母
        {
                bChar -= 0x37;
        }
        else if((bChar>=0x61)&&(bChar<=0x66))//小寫字母
        {
                bChar -= 0x57;
        }
        else
        {
                bChar = 0xff;
        }
        return bChar;
}

int main(void)
{

        FIL fil;                                                                //文件對象
        static FRESULT res;                        //FRESULT函數(shù)公共結(jié)果代碼
        char write_buffer[512];                //寫文件緩沖區(qū)
        char read_buffer[512];                //讀文件緩沖區(qū)
        UINT counter;

        u8 i=0;
        u8 j=0;
        char k;
        u8 key=0;
        u16 temp=0;
        u32 dtsize,dfsize;
        u8 table[512];
        u8 STATIC_CONFIG[]="ADDR:1|SOUND:ON|CODE:123456|VER:V1.00";

        Board_Init();
        System_Init();
        menu_flag=0;
        SPI_Flash_Init();
        if(exfuns_init())
        {
                LCD12864_ShowString(0,0,"FATFS Memory Error!\0");
        }
        res=f_mount(1,fs[1]);         //掛載FLASH.
        do
        {
                temp++;
                res=exf_getfree("1:",&dtsize,&dfsize);//得到FLASH剩余容量和總?cè)萘?br />                 delay_ms(200);                  
        }while(res&&temp<20);//連續(xù)檢測20次                  
        if(res==0X0D)//文件系統(tǒng)不存在
        {
                LCD12864_ShowString(0,0,"Flash Disk Formatting...\0");        //格式化FLASH
                res=f_mkfs(1,1,4096);//格式化FLASH,1,盤符;1,不需要引導(dǎo)區(qū),8個扇區(qū)為1個簇
                if(res==0)
                {
                        LCD_CLR();
                        LCD12864_ShowString(0,0, "OK");//標志格式化成功
                        res=exf_getfree("1:",&dtsize,&dfsize);//重新獲取容量
                }
        }
        if(res!=FR_OK)
        {
                while(1)
                {
                        LCD_CLR();
                        delay_ms(200);
                        LCD12864_ShowString(0,1,"FATFS ERROR\0");
                        delay_ms(200);
                };
        }
        res = f_open(&fil,"1:config.ini",FA_READ | FA_WRITE | FA_OPEN_EXISTING);   //打開驅(qū)動器0上的源文件
        if(res == FR_NO_FILE)        //如果文件不存在則新建文件
        {
                res = f_open(&fil,"1:config.ini",FA_READ | FA_WRITE | FA_OPEN_ALWAYS);
                if(res == FR_OK)
                {
                        res = f_lseek(&fil,0);
                        if(res != FR_OK)
                        {
                                LCD_CLR();
                                LCD12864_ShowString(0,1,"f_lseek ERROR\0");
                                while(1);
                        }
                        res = f_write(&fil,STATIC_CONFIG,(sizeof(STATIC_CONFIG)-1),&counter);                //將緩沖器中的內(nèi)容寫入源文件
                        if(res!=FR_OK || counter==0)
                        {
                                LCD_CLR();
                                LCD12864_ShowString(0,1,"f_write ERROR\0");
                                while(1);
                        }
                }
        }
        res = f_lseek(&fil,0);        //移動讀指針到文件首
        res = f_read(&fil,read_buffer,50,&counter);
        if(res != FR_OK || counter == 0)
        {
                LCD_CLR();
                LCD12864_ShowString(0,1,"f_read ERROR\0");
                while(1);
        }
        f_close(&fil);
        LCD_CLR();
      
//        for(i=0;i<counter;i++)
//        {
//                table[ i]=HexToChar(read_buffer[ i]);
//        }
        k=HexToChar(read_buffer[0]);
      
        for(i=0;i<counter;i++)
        {
                if(read_buffer[ i]==0x41&&read_buffer[i+1]==0x44&&read_buffer[i+2]==0x44)
//                if(k=="A")
                {
                        for(j=0;j<4;j++)
                        {
                                TIM_Cmd(TIM4, ENABLE);
                                while(1);
                        }
                        ;
                }
        }
        while(1)
        {
              ;
        }
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲免费福利视频 | 亚洲欧美一区二区三区国产精品 | 欧美日韩三级 | 亚洲三级在线 | 亚洲图片一区二区三区 | 日本免费一区二区三区四区 | 国产成人免费视频网站高清观看视频 | 日日日色 | 日韩视频在线播放 | 91激情视频| 亚州春色 | 成人精品鲁一区一区二区 | 国产一区二区视频在线 | 亚洲视频在线一区 | 亚洲成人久久久 | 精品欧美一区免费观看α√ | 欧美一区二 | www国产精 | 中文字幕久久精品 | 欧洲妇女成人淫片aaa视频 | 四虎影| 国产精品久久久久久久久久了 | 国产欧美精品一区二区色综合 | 精品福利一区 | 综合二区 | www.日本精品 | 亚洲精品短视频 | 久久久精品天堂 | 日韩无| 91精品久久久久久久久中文字幕 | 中文字幕一区二区不卡 | 99精品视频一区二区三区 | 中文字幕免费 | 精品福利视频一区二区三区 | 婷婷丁香在线视频 | 久久精品亚洲欧美日韩精品中文字幕 | 国产免费观看久久黄av片涩av | 国产精久久久 | 日韩在线小视频 | 狠狠操av | 久久婷婷国产麻豆91 |