有没有使用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).