[求助]CH375B初始化

#include "stc12c5a60s2.h" #include "ch375hf5.h"

typedef unsigned char u8; typedef unsigned int u16;

#define UINT8 u8 #define UINT16 u16

void Delay_ms(u16 z) // { u16 x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }

void Uart1_Init(void) // { AUXR = 0x11; SCON = 0X50; BRT = 0XFD; PCON &= 0X7F; ES = 0; EA = 0; }

void Uart2_Init(void) // { S2CON = 0XD0; BRT = 0XFD; IE2&=0xFE; EA = 0; }

void Send_Byte(u8 cmd) // { SBUF=cmd; while(!TI); TI=0; }

void Send_String(u8 *pbuf) { while(*pbuf !='\0') { Send_Byte(*pbuf++); } }

void xWriteCH375Cmd( UINT8 mCmd ) // { S2CON |=0x08; S2BUF = mCmd; while (( S2CON&0x02) == 0 ); S2CON &=0xFD; }

void xWriteCH375Data( UINT8 mData )// { S2CON &=0xF7; S2BUF = mData; while (( S2CON&0x02) == 0 ); S2CON &=0xFD; }

UINT8 xReadCH375Data( void ) // { while ( (S2CON&0x01) == 0); S2CON&=0xFE; return( S2BUF ); }

void main(void) { u8 i=1; Uart1_Init(); Uart2_Init(); Delay_ms(100); Send_String("準(zhǔn)備初始化"); i=CH375LibInit(); if(i == 0) Send_String("初始化成功"); else Send_String("初始化失敗"); for(;;) { ; } } 一直卡在初始化那里,CH375Hf5.h和CH375Hf5.lib都添加了 疑問(wèn),庫(kù)函數(shù)怎么知道我使用的是串行方式


熱門(mén)產(chǎn)品 : CH390:以太網(wǎng)控制器芯片

USB工作模式在哪里設(shè)置呢?


你使用我們CH375庫(kù)的話,設(shè)置USB工作模式在i=CH375LibInit();里面實(shí)現(xiàn),庫(kù)會(huì)調(diào)用程序中的接口函數(shù)。你可以在庫(kù)初始化之前做一下測(cè)試命令check_exsit,驗(yàn)證串口的準(zhǔn)確性。


xWriteCH375Cmd(CMD_CHECK_EXIST); xWriteCH375Data(0x11); i=xReadCH375Data();

i是不是等于0xEE


數(shù)據(jù)取反是正常的,就是初始化過(guò)不去


初始化函數(shù)返回0,說(shuō)明初始化成功了啊。


如果i=CH375LibInit();返回0說(shuō)明單片機(jī)與CH375通訊正常,庫(kù)初始化成功。那你下面CH375DiskReady通過(guò)了嗎?


程序一直卡在這條語(yǔ)句上面 if ( CH375DiskReady( ) == ERR_SUCCESS )

我采用的是查詢法,那么在程序開(kāi)始定義了端口號(hào) sbit CH375_INT_WIRE = P1^5;


試了兩個(gè)U盤(pán),長(zhǎng)城的U盤(pán)不會(huì)卡死,但是查詢U盤(pán)CH375DiskReady( )不成功;另一個(gè)金士頓U盤(pán),直接卡死在if ( CH375DiskReady( ) == ERR_SUCCESS ) 這條語(yǔ)句上面


長(zhǎng)城的U盤(pán)CH375DiskReady()過(guò)了之后能正常進(jìn)行文件的創(chuàng)建和讀寫(xiě)嗎?另外有的U盤(pán)CH375DiskReady()總是返回為準(zhǔn)備好,你可以參考我們的例程,每隔100ms查詢一次,查個(gè)5-6次的如果還是不過(guò)就直接跳過(guò)這條命令,看看后面的操作正不正常。


那你CH375DiskConnect( )有沒(méi)有通過(guò)?CH375DiskReady( ) 按照下面的步驟做,返回值是多少? for ( i = 0; i < 5; i ++ ) { /* 有的U盤(pán)總是返回未準(zhǔn)備好,不過(guò)可以被忽略 */ mDelay100mS( ); printf( "Ready ?\n" ); if ( CH375DiskReady( ) == ERR_SUCCESS ) break; /* 查詢磁盤(pán)是否準(zhǔn)備好*/ }


CH375DiskConnect( )都可以通過(guò)的。 H375DiskReady( )返回的是0x2C


mCopyCodeStringToIRAM( mCmdParam.Open.mPathName, "/MY_ADC.TXT" ); i = CH375FileOpen( ); i還是等于0x2C


你在CH375DiskReady( ) 之前加上設(shè)置模式的命令試一下: for ( i = 0; i < 5; i ++ ) { /* 有的U盤(pán)總是返回未準(zhǔn)備好,不過(guò)可以被忽略 */ mDelay100mS( ); printf( "Ready ?\n" ); xWriteCH375Cmd( CMD_SET_USB_MODE ); xWriteCH375Data( 0x06 ); if ( CH375DiskReady( ) == ERR_SUCCESS ) break; /* 查詢磁盤(pán)是否準(zhǔn)備好*/ }


不行, CH375DiskReady( )返回的值是0x82


中斷引腳我自己配置一個(gè)IO口可以嗎(查詢法)


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

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