从模式操作-docker部署python爬虫项目的方法步骤
11.14 从模式操作在从模式中,CPU使用寄存器接口在RAM和端点缓冲区之间传输数据。你知道吗?这一切是如何运作的?让我们一探究竟!
11.14.1 中断的产生在从模式中,RAM和端点缓冲区之间的数据包传输可以在出现端点中断时启动来响应中断。端点中断使用USBEpIntEn寄存器来使能,并从USBEpIntSt寄存器中进行查询。所有非同步的OUT端点在成功地接收到一个信息包时产生端点中断。所有非同步的IN端点在成功地发送一个信息包时,或者在总线上发送了一个NAK握手信号并且NAK特性的中断使能时产生中断。对于同步端点,在出现FRAME中断(在USBDevIntSt中)时进行数据传输。如果你对STM32的外部中断操作感兴趣,可以点击这里了解更多。
11.14.2 OUT端点的数据传输当软件想从端点缓冲区中读取数据时,它应该将USBCtrl寄存器中的RD_EN位置位并将LOG_ENDPOINT字段设置为所需的端点编号。控制逻辑将获取信息包长度输入到USBRxPLen寄存器,并将PKT_RDY位置位。现在,软件可以从USBRxData寄存器中读取数据。当到达信息包的结尾时,RD_EN位清零,并且USBDevSt寄存器中的RxENDPKT位置位。此时,软件可发出清空缓冲区命令,端点准备接受下一个信息包。想深入了解SPI数据传输的从设备模式?看看这个链接。
对于OUT同步端点来说,不管缓冲区是否已清空,它都会接收下一个包。因此,在帧结束之前没有从缓冲区中读出的数据将丢失。详细信息请参考“双缓冲的端点操作”。这是不是让你对双缓冲端点操作有了更多的好奇?更多关于USB中断状态寄存器的信息可以在这里找到。
这样一来,我们不仅了解了从模式的基本操作,还探讨了中断的产生和OUT端点的数据传输过程。如果你对中断控制和并行IO接口的更多细节感兴趣,可以点击这个链接。是不是觉得信息量很大但又相当有趣呢?总之,这些技术细节让人不禁赞叹电子设备背后复杂而精妙的设计。