请教: 我用ch375b通过串口连接stm32做host读u盘,没有用库例程,只用了读写命令。。。 在我的程序里面需要动态修改CH375 的波特率,可是改了以后再直接开关电源复位板子的时候(我的是STM32由串口接ch375),就不能再初始化ch375, 我觉得是不是ch375 的波特率还没改回来的原因? 可是我的板子明明复位了呀。。。。。 还有需要将375芯片上的复位引脚接出来用吗?我用来玩RESET_ALL命令也没有 用啊。。
急啊。。。。。 谢谢帮忙!!!
请教: 我用ch375b通过串口连接stm32做host读u盘,没有用库例程,只用了读写命令。。。 在我的程序里面需要动态修改CH375 的波特率,可是改了以后再直接开关电源复位板子的时候(我的是STM32由串口接ch375),就不能再初始化ch375, 我觉得是不是ch375 的波特率还没改回来的原因? 可是我的板子明明复位了呀。。。。。 还有需要将375芯片上的复位引脚接出来用吗?我用来玩RESET_ALL命令也没有 用啊。。
急啊。。。。。 谢谢帮忙!!!
对于串口方式,首先使用默认波特率,修改CH375的波特率后,还需要修改你的单片机的波特率使两者保持一致才可以通讯.如果还不可以的话就需要你检查单片机波特率的误差是否过大引起的通讯失败.
(1)在默认改波特率的情况下,做测试命令,验证一下3个读写子函数是否正确 (2)程序中需要延时40mS等待375复位完全,才能继续操作 (3)可以用引脚复位,不过还是先要把STM32与375的通信接口建立成功 (4)修改波特率流程入下: <1>发送命令修改375波特率 <2>修改单片机自身波特率 <3>读命令执行的状态
您误解了我的意思 我修改波特率 后可以通讯。。 但是复位一下板子就 不能通讯了,需要拔一下375的电源。。。 不知道什么原因。。。
如果复位前波特率115200, 如果375没有被复位的话,那么波特率是你上次修改的115200,.而你的MCU这时候复位了是9600来和375通讯的,所以通讯不成功的.就是说CH375如果不复位的话,那么波特率就是上次修改的,
那怎么复位375呢??? 我用RESET_ALL命令没用啊
直接把第2引脚拉高在拉低之后在延时50MS以上就可以了
波特率都不对,通讯都不成功当然没有了.
还想问一个问题,,我用他读U盘的mo3文件出来播放但是中间总是放一会儿就死掉了 程序死在发送完CMD_DISK_READ命令和要读取的扇区数后等待ch375的中断状态(USB_INT_DISK_READ)这里。。 请问这是什么原因?? 是延时的问题吗?可是能放一会儿的。。。
(1)如果是读完所有数据后再播放,应该不会死机 (2)如果是读完64B(假设每扇区是512)就播放的话,那么播放时间不能超过2mS (3)延时具体在什么地方?可以先做个实验,纯粹读U盘,不进行播放,验证是否由播放导致 另,播放Mp3的话,串口的速度太慢了,最好需要选用并口方式
是读完一个扇区才播放的。。。 我把串口的波特率调成了460800,才可以放出来的, 我说的延时是发送命令和数据,以及等待数据和中断之间的延时,,有关系吗 ?? 现在经常放1分钟就死掉了
(1)命令、数据间的延时是必要的,命令后1.5uS,数据0.6uS (2)现在要区分是读U盘时死机还播放时死机,按9楼中的建议先做实验验证一下