請問有沒有stm32 通過異步串口方式用CH376實(shí)現(xiàn)U盤讀寫的例程啊

如題,我用stm32異步串口方式按照例程編寫的程序,寫如數(shù)據(jù)沒錯,但是讀數(shù)據(jù)總是不對。請問

UINT8xReadCH376Data( void )?

{

????return?USART_ReceiveData(USART1);

}

這么寫對么?
不對該如何更改?

求賜教?。?!


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

“寫沒錯,讀不對”指的是測試命令不正確嗎?

你用串口助手發(fā)57 AB 06 55,看能否返回AA?


返回AA了


"但是讀數(shù)據(jù)總是不對"?什么意思?哪兒讀的不對,讀到什么?


以枚舉程序?yàn)槔?/p>

U盤根目錄內(nèi)有KTC001.TXT,KTC002.TXT,KTC003.TXT 3個文件。u8 buf[64]={0};

U盤連接成功(因?yàn)閷懭霐?shù)據(jù)成功)

u8 s;

s=CH376SetFileName( "KTC*" );

xWriteCH376Cmd( CMD0H_FILE_OPEN );

while(1)

{

????if(s==USB_INT_DISK_READ)

????{

????????CH376ReadBlock( buf );????????????????????-1

????????xWriteCH376Cmd( CMD0H_FILE_ENUM_GO );?????-2

????}

????else

????????break;

}

在-1處單步執(zhí)行,buf所有成員為0;-2處單步執(zhí)行,只有buf[0]=0x01;其余為0;因?yàn)橛?個成員,程序在斷點(diǎn)處執(zhí)行3次,且每次執(zhí)行結(jié)果與上述結(jié)果一樣。

然后程序改為

u8 s;

s=CH376SetFileName( "KTC*" );

xWriteCH376Cmd( CMD0H_FILE_OPEN );

while(1)

{

????if(s==USB_INT_DISK_READ)

????{

????????buf[0]=xReadCH376Data( );? ? ? ? ? ? ? ? ?-1

????????buf[0]=xReadCH376Data( );? ? ? ? ? ? ? ? ?-1

????????buf[0]=xReadCH376Data( );? ? ? ? ? ? ? ? ?-1

? ? ? ? buf[0]=xReadCH376Data( );? ? ? ? ? ? ? ? ?-1

? ? ? ? buf[0]=xReadCH376Data( );? ? ? ? ? ? ? ? ?-1

? ? ? ? buf[0]=xReadCH376Data( );? ? ? ? ? ? ? ? ?-1

? ? ? ? buf[0]=xReadCH376Data( );? ? ? ? ? ? ? ? ?-1

? ? ? ? buf[0]=xReadCH376Data( );? ? ? ? ? ? ? ? ?-1

? ? ? ? buf[0]=xReadCH376Data( );? ? ? ? ? ? ? ? ?-1

? ? ? ? buf[0]=xReadCH376Data( );? ? ? ? ? ? ? ? ?-1

? ? ? ? buf[0]=xReadCH376Data( );? ? ? ? ? ? ? ? ?-1

????????xWriteCH376Cmd( CMD0H_FILE_ENUM_GO );?????-2

????}

????else

????????break;

}



上邊寫錯了,程序改為了

u8 s;

s=CH376SetFileName( "KTC*" );

xWriteCH376Cmd( CMD0H_FILE_OPEN );

while(1)

{

? ? if(s==USB_INT_DISK_READ)

? ? {

? ? ? ? buf[0]=xReadCH376Data( ); ? ? ? ? ? ? //-1

? ? ? ? buf[1]=xReadCH376Data( ); ? ? ? ? ? ? //-2

? ? ? ? buf[2]=xReadCH376Data( ); ? ? ? ? ? ? //-3

? ? ? ? buf[3]=xReadCH376Data( ); ? ? ? ? ? ? //-4

? ? ? ? buf[4]=xReadCH376Data( ); ? ? ? ? ? ? //-5

? ? ? ? buf[5]=xReadCH376Data( ); ? ? ? ? ? ? //-6

? ? ?? ? ? ? ? ? ? ?.

? ? ? ? ? ? ? ? ? ? .

? ? ? ? ? ? ? ? ? ? .

? ? ? ? buf[10]=xReadCH376Data( ); ? ? ? ? ? ? //-10

? ? ? ? xWriteCH376Cmd( CMD0H_FILE_ENUM_GO ); ?//-11

? ? }

? ? else

? ? ? ? break;

}

單步執(zhí)行后,buf所有0-10成員為0x1D,也就是USB_INT_DISK_READ的值,因?yàn)?個文件符合條件,也是執(zhí)行3次


無標(biāo)題.png設(shè)置文件名有返回嗎??這個中斷值是在發(fā)打開之后的。再者,你有等中斷函數(shù)嗎?


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频