CH376初始化U盘的问题

楼主,能被软件SPI的msp430 代码发给我一份吗? 个人信息保护,已隐藏,谢谢[Emot]1[/Emot]


到网上下载CH376EVT.ZIP,里面有51下面的例程,都是C语言,移植一下就可以


已经移植了,就不知道时序是不是对的。 void Spi376OutByte( UINT8 d ) /* µ¥Æ¬»úSPIÊä³ö8¸öλÊý¾Ý */ { UINT8 i; for ( i = 0; i < 8; i ++ ) { Clr_CH376_SPI_SCK(); if ( d & 0x80 ) Set_CH376_SPI_SDI(); else Clr_CH376_SPI_SDI(); d <<= 1; Set_CH376_SPI_SCK(); } }

UINT8 Spi376InByte( void ) /* µ¥Æ¬»úSPIÊäÈë8¸öλÊý¾Ý */ { UINT8 i, d; d = 0; for ( i = 0; i < 8; i ++ ) { Clr_CH376_SPI_SCK(); if ( CH376_SPI_SDO ) d ++; d <<= 1; mDelay0_5uS( ); } return( d ); } #define Set_CH376_SPI_SCS() (USBPORTOUT |= BIT0) #define Clr_CH376_SPI_SCS() (USBPORTOUT &=~BIT0)

#define Set_CH376_SPI_SDI() (USBPORTOUT |= BIT1) #define Clr_CH376_SPI_SDI() (USBPORTOUT &=~BIT1)

#define Set_CH376_SPI_SCK() (USBPORTOUT |= BIT3) #define Clr_CH376_SPI_SCK() (USBPORTOUT &=~BIT3)

#define CH376_SPI_SDO (USBPORTIN & BIT2)


UINT8 Spi376InByte( void ) 这个函数里面的SCK怎么一直都是低电平呢? 应该在SCK的下降沿采集数据。


void Spi376OutByte( UINT8 d ) /* µ¥Æ¬»úSPIÊä³ö8¸öλÊý¾Ý */ { /* Èç¹ûÊÇÓ²¼þSPI½Ó¿Ú,Ó¦¸ÃÊÇÏȽ«Êý¾ÝдÈëSPIÊý¾Ý¼Ä´æÆ÷,È»ºó²éѯSPI״̬¼Ä´æÆ÷ÒԵȴýSPI×Ö½Ú´«ÊäÍê³É */ UINT8 i; for ( i = 0; i < 8; i ++ ) { Clr_CH376_SPI_SCK(); if ( d & 0x80 ) Set_CH376_SPI_SDI(); else Clr_CH376_SPI_SDI(); d <<= 1; /* Êý¾ÝλÊǸßλÔÚÇ° */ Set_CH376_SPI_SCK(); /* CH376ÔÚʱÖÓÉÏÉýÑزÉÑùÊäÈë */ mDelay0_5uS( ); } }

UINT8 Spi376InByte( void ) /* µ¥Æ¬»úSPIÊäÈë8¸öλÊý¾Ý */ { /* Èç¹ûÊÇÓ²¼þSPI½Ó¿Ú,Ó¦¸ÃÊÇÏȲéѯSPI״̬¼Ä´æÆ÷ÒԵȴýSPI×Ö½Ú´«ÊäÍê³É,È»ºó´ÓSPIÊý¾Ý¼Ä´æÆ÷¶Á³öÊý¾Ý */ UINT8 i, d; d = 0; for ( i = 0; i < 8; i ++ ) { Clr_CH376_SPI_SCK(); /* CH376ÔÚʱÖÓϽµÑØÊä³ö */ mDelay0_5uS( ); d <<= 1; /* Êý¾ÝλÊǸßλÔÚÇ° */ if ( CH376_SPI_SDO ) d ++; Set_CH376_SPI_SCK(); } return( d ); } 认真地看了下,这么改的,应该没有错了。但是 res返回每次还是不一样。


只有登录才能回复,可以选择微信账号登录