完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在发生输入中断进入非零端点处理的输入中断处理的回调函数EP1_IN_Callback中使用了Mass_Storage_In函数,其中需要判断Bot_State,该状态机有5个状态,但是该函数中没有BOT_IDLE这个状态发生时的处理。但在,当遇到遇到BOT_DATA_IN状态时会进入的SCSI_Read10_Cmd函数、里面却出现了判断状态机是否为BOT_IDLE的if语句,请问这里的逻辑关系是怎么回事?若是状态机为BOT_DATA_IN又怎么可能出现变成BOT_IDLE这种情况?
|
|
相关推荐
1个回答
|
|
在STM32中,USB Mass Storage类通信涉及到一个状态机,用于管理USB通信过程中的各种状态。这个状态机有5个状态,分别是BOT_IDLE、BOT_DATA_IN、BOT_DATA_OUT、BOT_LAST_DATA_IN和BOT_ERROR。在您的描述中,您提到了在EP1_IN_Callback回调函数中使用了Mass_Storage_In函数,但在该函数中没有看到BOT_IDLE状态的处理。然而,在SCSI_Read10_Cmd函数中,您发现了一个判断状态机是否为BOT_IDLE的if语句。
首先,我们来分析这两个函数的作用: 1. EP1_IN_Callback:这是一个回调函数,用于处理输入中断。当USB设备接收到数据时,会触发这个中断,然后调用这个回调函数。在这个函数中,Mass_Storage_In函数被调用,用于处理接收到的数据。 2. SCSI_Read10_Cmd:这是一个处理SCSI命令的函数,用于执行读取操作。在执行读取操作时,它可能会涉及到USB数据传输,因此需要与USB状态机进行交互。 现在我们来分析您提到的逻辑关系: 1. 当USB设备接收到数据时,会触发输入中断,然后调用EP1_IN_Callback回调函数。在这个函数中,Mass_Storage_In函数被调用,用于处理接收到的数据。此时,状态机可能处于BOT_DATA_IN状态,表示正在处理数据输入。 2. 在SCSI_Read10_Cmd函数中,当执行读取操作时,它需要与USB状态机进行交互。在某些情况下,可能需要检查状态机是否处于BOT_IDLE状态。这可能是因为在执行读取操作之前,需要确保USB设备已经准备好接收数据,或者需要在特定条件下重置状态机。 3. 虽然在Mass_Storage_In函数中没有看到BOT_IDLE状态的处理,但这并不意味着状态机不能进入BOT_IDLE状态。状态机的状态转换可能由其他函数或中断处理程序控制。在SCSI_Read10_Cmd函数中检查状态机是否为BOT_IDLE,可能是为了确保在执行读取操作之前,状态机处于正确的状态。 综上所述,这里的逻辑关系可能是:在处理USB数据传输时,状态机可能会在不同的状态之间转换。在Mass_Storage_In函数中,主要处理数据输入,而状态机可能处于BOT_DATA_IN状态。而在SCSI_Read10_Cmd函数中,需要检查状态机是否为BOT_IDLE,以确保在执行读取操作之前,状态机处于正确的状态。这种设计可以确保USB通信过程中的各个阶段都能正确地进行。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1802 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1629 浏览 1 评论
1096 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
735 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1685 浏览 2 评论
1944浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
747浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
580浏览 3评论
602浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
565浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 05:46 , Processed in 0.721523 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号