求助串口板模块问题?
我买了一个串口模块,上电后和U盘链接后,U盘就一直闪烁,和单片机链接后,也不能正常的读写U盘。请教各位高手们,这是因为什么啊
这人很懒,什么都没留下
请参考我们提供的例子程序,监控程序运行到哪了,发的命令是多少,返回的状态,长度,后续数据又是多少,这样才能确定,另外注意波特率的问题,模块出厂默认是4800BPS.
此号封存
程序执行到这一句
i = ExecCommand( CMD_QueryStatus, 0 ); /* 查询当前模块的状态 */
之后就执行不了了是因为什么?
这人很懒,什么都没留下
补充一下,我是用的AT89S51 ,请问这个这个问题和单片机有关吗?
这人很懒,什么都没留下
刚才在你的另外一个帖中感觉你用的是串口版的模块,那是否你单片机那边也增加了232的芯片呢,否则没有办法通讯的.其实你现在的问题就是通讯的问题,比如波特率是否一致,RXD与TXD的问题.
其实你可以仔细查一下,如果不插U盘,就发送CMD_QueryStatus,那么再发送完后就应该有状态返回.如果没有,那就要仔细查一下硬件,软件问题了.
此号封存
不插U盘的话,返回的是 00 0C 00 01 16 00 00 00 00 01 00 00 00 00
插了U盘的话,返回的是00 0C 00 02 15 00 00 00 00 01 00 00 00 00

我觉得这都正确,而且通过串口调试,把00 0C 00 02 15 00 00 00 00 01 00 00 00 00 发给单片机,单片机返回 57 AB 71 00 。我觉得这都正确呀,但是把单片机和模块连接一起就没有反应了,、在单片机和模块连接后,我在程序中设置了监视,发现只能执行到 ExecCommand 子程序中的 status = mRecvByte(); 然后就不能执行了,这个问题怎么解决啊,为什么单片机收不到模块返回的数据呢?要修改ExecCommand 子程序中的内容吗?

这人很懒,什么都没留下
不太明白你的意思,如:发给单片机,返回57 AB 71 00,但是把单片机和模块连接在一起就没有反应了.难道前面说的不是和单片机连接的?
另外注意程序上电后稍微加点延时,大约在600Ms以后再对模块发命令.
如果还是解决不了,建议您电话和我联系一下.025-52638373
此号封存
我在前面说的,是通过一个串口调试软件,然后利用计算机向模块或者单片机发送数据,

我今天又仔细研究一下,觉得问题就是出在单片机向模块发送命令上,查询模块时,
单片机执行了:
mSendByte( SER_SYNC_CODE1 );
mSendByte( SER_SYNC_CODE2 );
RI = 0;
mSendByte( cmd );
mSendByte( len );
(即发送:57 AB 60 00 到模块)
之后,模块按照正常情况下应该返回一组数据: 00 0C 00 02 15 00 00 00 00 00 00 00 00 00 ,但是模块没有正常的返回这些数据。
但是,用你们的模块调试工具。有以下结果:
Send QueryStatus:57 AB 60 00
return : 00 0C 00 02 15 00 00 00 00 00 00 00 00 00
这调试的结果不是就说明了,模块没有问题。

但是我的问题出现在:用单片机执行上面四个指令后,即向单片机发送:57 AB 60 00 之后,模块没有返回数据,我不知道问题是不是出在,单片机发送那四个16进制数,和模块调试工具发送那四个16进制数,它们有些什么不同吗?怎么解决呢?
电路连接没有问题
这人很懒,什么都没留下
如果将模块与电脑连接起来,用模块调试工具发送命令给模块,模块返回的数据是正常的,那么说明模块是没有问题的.
你的电路上是否有RS232的芯片?如果模块是串口版本的,电平是232的,这点要注意下;
另外,能否确信单片机发出的命令是正确的?你将单片机与电脑连接起来,把数据发送到电脑上,看电脑能否收到单片机发送过去的数据.
此号封存
只有登录才能回复,可以选择微信账号登录