[求助]msp430与ch376的串口读写问题

1,串口操作只需要两个引脚,RXD和TXD吗? 2,ack的指示灯是代表usb已经检测到?问题是我单片机复位以后没有发送相关命令,它为什么还能检测到? 3,对其U盘创建文件时60%创建失败,30%创建为乱码文件,10%几率成功创建,请问下为什么,应该怎么做。求相关人员指教,拜托了。[Emot]20[/Emot][Emot]20[/Emot][Emot]20[/Emot][Emot]20[/Emot]

根据你的现象,感觉你的板子不是很稳定,注意一下以下问题 1,恩,串口操作只需要TXD和RXD与单片机对接,可以通过测试命令来验证接口正确性 2,ACT在USB主机方式下是USB设备正在连接状态输出,低电平有效,只有设备插上才会变亮 3,在创建文件之前,磁盘初始化是否正确通过?创建文件注意文件名需要大写。


有msp430串口读写u盘的相关代码? 串口操作的中断是不需要发送CH376GetIntStatus( )的吧,只需要读rxd的值?? 官方代码太全太复杂,我只是按照我需要的移植的。 现在创建文件基本可以,但是在写字节数据,返回值是对的,但是在文件里面看不到任何东西。。


我们只有51的相关例程,430单片机只需要修改读写子函数即可。 串口可以通过查询TXD发出的中断码来判断中断产生,但是查询到中断后还需要发送get_status(0x22)来获取中断状态。 写完数据后,需要关闭文件,更新文件长度。


UINT8 Wait376Interrupt( void ) /* 等待CH376中断(INT#低电平),返回中断状态码, 超时则返回ERR_USB_UNKNOWN */ { //#ifdef DEF_INT_TIMEOUT //#if DEF_INT_TIMEOUT < 1 // while ( Query376Interrupt( ) == FALSE ); /* 一直等中断 */ // return( CH376GetIntStatus( ) ); /* 检测到中断 */ //#else // UINT32 i; // for ( i = 0; i < DEF_INT_TIMEOUT; i ++ ) { /* 计数防止超时 */ // if ( Query376Interrupt( ) ) return( CH376GetIntStatus( ) ); /* 检测到中断 */ ///* 在等待CH376中断的过程中,可以做些需要及时处理的其它事情 */ // } // return( ERR_USB_UNKNOWN ); /* 不应该发生的情况 */ //#endif //#else // UINT32 i; // for ( i = 0; i < 5000000; i ++ ) { /* 计数防止超时,默认的超时时间,与单片机主频有关 */ // if ( Query376Interrupt( ) ) return( CH376GetIntStatus( ) ); /* 检测到中断 */ ///* 在等待CH376中断的过程中,可以做些需要及时处理的其它事情 */ // } // return( ERR_USB_UNKNOWN ); /* 不应该发生的情况 */ return( CH376GetIntStatus( ) ); } DEF_INT_TIMEOUT是什么。这段函数不用修改吗?


。或者告诉我需要修改哪些函数吧。。! UINT8 Query376Interrupt( void ) { #ifdef CH376_INT_WIRE return( CH376_INT_WIRE ? FALSE : TRUE ); /* 如果连接了CH376的中断引脚则直接查询中断引脚 */ #else return( xReadCH376Status( ) & PARA_STATE_INTB ? FALSE : TRUE ); /* 如果未连接CH376的中断引脚则查询状态端口 */ #endif }这段我该怎么检查中断,感觉这段都可以不要。。


DEF_INT_TIMEOUT是定义超时退出,一般不用定义。这段函数不需要修改,检测到中断后调用会CH376GetIntStatus( ) 查询中断状态。


ERR_USB_UNKNOWN。这个宏定义,原函数里面为什么找不到。


已找到。。。不好意思。。源文件太复杂。初学者,不是很会读。


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