Skip to content

Commit 3de5213

Browse files
committed
Small rewrite, will be used in future.
1 parent ee78138 commit 3de5213

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

system/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_usb.c

+14-7
Original file line numberDiff line numberDiff line change
@@ -1835,13 +1835,13 @@ HAL_StatusTypeDef USB_DeactivateEndpoint(USB_TypeDef *USBx, USB_EPTypeDef *ep)
18351835
*/
18361836
HAL_StatusTypeDef USB_EPStartXfer(USB_TypeDef *USBx , USB_EPTypeDef *ep)
18371837
{
1838-
uint16_t pmabuffer = 0;
1839-
uint32_t len = ep->xfer_len;
1838+
uint16_t pmabuffer;
1839+
uint32_t len;
18401840

18411841
/* IN endpoint */
18421842
if (ep->is_in == 1)
18431843
{
1844-
/*Multi packet transfer*/
1844+
/* Multi packet transfer */
18451845
if (ep->xfer_len > ep->maxpacket)
18461846
{
18471847
len=ep->maxpacket;
@@ -1856,8 +1856,8 @@ HAL_StatusTypeDef USB_EPStartXfer(USB_TypeDef *USBx , USB_EPTypeDef *ep)
18561856
/* configure and validate Tx endpoint */
18571857
if (ep->doublebuffer == 0)
18581858
{
1859-
USB_WritePMA(USBx, ep->xfer_buff, ep->pmaadress, len);
18601859
PCD_SET_EP_TX_CNT(USBx, ep->num, len);
1860+
pmabuffer = ep->pmaadress;
18611861
}
18621862
else
18631863
{
@@ -1874,11 +1874,18 @@ HAL_StatusTypeDef USB_EPStartXfer(USB_TypeDef *USBx , USB_EPTypeDef *ep)
18741874
PCD_SET_EP_DBUF0_CNT(USBx, ep->num, ep->is_in, len);
18751875
pmabuffer = ep->pmaaddr0;
18761876
}
1877-
USB_WritePMA(USBx, ep->xfer_buff, pmabuffer, len);
1877+
}
1878+
1879+
USB_WritePMA(USBx, ep->xfer_buff, pmabuffer, (uint16_t) len);
1880+
1881+
if (ep->doublebuffer == 0)
1882+
{
1883+
PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_VALID);
1884+
}
1885+
else
1886+
{
18781887
PCD_FreeUserBuffer(USBx, ep->num, ep->is_in);
18791888
}
1880-
1881-
PCD_SET_EP_TX_STATUS(USBx, ep->num, USB_EP_TX_VALID);
18821889
}
18831890
else /* OUT endpoint */
18841891
{

0 commit comments

Comments
 (0)