求助:有没有使用MSP430F5438控制CH376实现存储的?

有没有使用MSP430F5438控制CH376实现存储的?最新一直在做,但有时候出现bug。不知道怎么解决?求各位好人发一个参考一下。我的邮箱个人信息保护,已隐藏


请问是什么接口通讯?什么BUG呢


今天把昨天的BUG解决了。但是又出现了新的问题:我使用的MSP430F5438中硬件SPI通信方式,今天老是初始化不成功。一直进入if( res != 0x9A ) 

{

return( ERR_USB_UNKNOWN );  

}

一直进入这个条件。res一直为0x9A


1、片选CS引脚初始时需要拉高,在发送命令时拉低,接着发数据、读数据,然后拉高CS。

2、发命令之后延时2US,发数据之后延时1us,读数据之前延时1us。

3、硬件SPI选择模式0或者模式3

 


CH376_Port_Init( );   /* 接口硬件初始化 */

                        

                        CH378_SPI_SCS_LOW( ); //拉低CS

                        //发送命令之后延时2US

xWriteCH376Cmd( CMD11_CHECK_EXIST );  

                        mDelayuS( 2 ) ;

xWriteCH376Data( 0x65 );

                        mDelayuS( 1 ) ;

                        mDelayuS( 1 ) ;

res = xReadCH376Data( );

                   

xEndCH376Cmd( );//拉高CS

if( res != 0x9A ) 

{

return( ERR_USB_UNKNOWN );  

}

这是我的一部分。按照你说的第一步和第二步进行的。但还是一直进入return( ERR_USB_UNKNOWN )这句话。对于您说的第三句我不是很理解。你能解释一下么?


你好。我想问一下,我找到了我基本初始化失败的原因。失败的原因是:

xWriteCH376Cmd( 0x06 );  

xWriteCH376Data( 0x65 );

                    

res = xReadCH376Data( );

                   

xEndCH376Cmd( );//拉高CS

if( res != 0x9A ) 

{

return( ERR_USB_UNKNOWN );  

}


/* 设置CH378工作模式 */

xWriteCH376Cmd( CMD11_SET_USB_MODE );   /* 设备USB工作模式 */

xWriteCH376Data( 0x07 );

mDelaymS( 50 ); 

res = xReadCH376Data( );

xEndCH376Cmd( );


if( res == CMD_RET_SUCCESS ) 

{

return( USB_INT_SUCCESS );

}

else 

{

return( ERR_USB_UNKNOWN );   /* 设置模式错误 */

}

发送这些指令的返回值有错误。发送0x06,返回值有时候是0x9A,有时候是0x86有时候是0xF9。我想问一下这是什么原因?谢谢



先排除硬件上的因素:晶振起振情况、供电电压与V3引脚对应关系、SPI通讯接口是否选通、复位引脚(RSTI)恢复后需延时50MS操作。

如果硬件都排除了,用示波器或逻辑分析仪抓一下硬件SPI的波形。SPI的clock不超过24MHz。


谢谢你们的解答。今天初始化成功了。但又出现了新的问题:

UINT8 Query376Interrupt( void )

{

                  #ifdefCH376_INT_WIRE

              return( CH376_INT_WIRE ? FALSE : TRUE );  

                  #else

              return( CH376_SPI_SDO ? FALSE : TRUE );  

                   #endif

}

执行这个函数时,一直是返回错误。不知道是什么原因?


spi模式没有产生中断吗?有没有复用SDO引脚,如果复用,需在片选拉高(无效)后,配置MISO引脚为普通IO输入引脚。如果没有复用,需要配置CH376_INT_WIRE为普通IO输入引脚。以上配置均为函数Query376Interrupt的中断查询方式。


文件创建成功了并且数据写入也成功了,但是一个字符串以一个字节的方式写入时,每次仅仅只能写入字符串的第一个字符?这是什么原因?



写完数据还需刷新文件长度。fileclose(1).


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