这些寄存器的功能确实很难**,每次都得查手册。
EPxBCL是可读写的。读的时候表示端点数据长度的低字节,写的时候,经常是改写第7位,SKIP位。
一般情况下,主机发过来的OUT包会自动送达该端点的FIFO。但是,如果8051想干涉这一过程,它就会把SKIP位置1,那么OUT包的数据就不会送达FIFO,直接丢弃,FIFO连接的外部逻辑甚至不会感知到主机曾经发过来OUT包。
有个Pingnak的例子,当主机发出ping请求,固件会收到ping中断,在中断函数里arm端点。结果是,如果此时端点刚好有数据,arm之后,这包数据就丢了,主机可以继续发下一包数据过来。
|