STM32F103xB HAL User Manual
|
Header file of PCD HAL module. More...
Go to the source code of this file.
Data Structures | |
struct | __PCD_HandleTypeDef |
PCD Handle Structure definition. More... | |
Defines | |
#define | PCD_SPEED_FULL USBD_FS_SPEED |
#define | PCD_PHY_ULPI 1U |
#define | PCD_PHY_EMBEDDED 2U |
#define | PCD_PHY_UTMI 3U |
#define | HAL_PCD_ERROR_INVALID_CALLBACK (0x00000010U) |
#define | __HAL_PCD_ENABLE(__HANDLE__) (void)USB_EnableGlobalInt ((__HANDLE__)->Instance) |
#define | __HAL_PCD_DISABLE(__HANDLE__) (void)USB_DisableGlobalInt ((__HANDLE__)->Instance) |
#define | __HAL_PCD_GET_FLAG(__HANDLE__, __INTERRUPT__) |
#define | __HAL_PCD_CLEAR_FLAG(__HANDLE__, __INTERRUPT__) |
#define | __HAL_USB_WAKEUP_EXTI_ENABLE_IT() EXTI->IMR |= USB_WAKEUP_EXTI_LINE |
#define | __HAL_USB_WAKEUP_EXTI_DISABLE_IT() EXTI->IMR &= ~(USB_WAKEUP_EXTI_LINE) |
#define | __HAL_USB_WAKEUP_EXTI_GET_FLAG() EXTI->PR & (USB_WAKEUP_EXTI_LINE) |
#define | __HAL_USB_WAKEUP_EXTI_CLEAR_FLAG() EXTI->PR = USB_WAKEUP_EXTI_LINE |
#define | __HAL_USB_WAKEUP_EXTI_ENABLE_RISING_EDGE() |
#define | USB_WAKEUP_EXTI_LINE (0x1U << 18) |
#define | PCD_EP0MPS_64 EP_MPS_64 |
#define | PCD_EP0MPS_32 EP_MPS_32 |
#define | PCD_EP0MPS_16 EP_MPS_16 |
#define | PCD_EP0MPS_08 EP_MPS_8 |
#define | PCD_ENDP0 0U |
#define | PCD_ENDP1 1U |
#define | PCD_ENDP2 2U |
#define | PCD_ENDP3 3U |
#define | PCD_ENDP4 4U |
#define | PCD_ENDP5 5U |
#define | PCD_ENDP6 6U |
#define | PCD_ENDP7 7U |
#define | PCD_SNG_BUF 0U |
#define | PCD_DBL_BUF 1U |
#define | USB_CNTRX_NBLK_MSK (0x1FU << 10) |
#define | USB_CNTRX_BLSIZE (0x1U << 15) |
#define | PCD_SET_ENDPOINT(USBx, bEpNum, wRegValue) |
#define | PCD_GET_ENDPOINT(USBx, bEpNum) (*(__IO uint16_t *)(&(USBx)->EP0R + ((bEpNum) * 2U))) |
#define | USB_EP0StartXfer USB_EPStartXfer |
#define | PCD_SET_EPTYPE(USBx, bEpNum, wType) |
sets the type in the endpoint register(bits EP_TYPE[1:0]) | |
#define | PCD_GET_EPTYPE(USBx, bEpNum) (PCD_GET_ENDPOINT((USBx), (bEpNum)) & USB_EP_T_FIELD) |
gets the type in the endpoint register(bits EP_TYPE[1:0]) | |
#define | PCD_FreeUserBuffer(USBx, bEpNum, bDir) |
free buffer used from the application realizing it to the line toggles bit SW_BUF in the double buffered endpoint register | |
#define | PCD_SET_EP_TX_STATUS(USBx, bEpNum, wState) |
sets the status for tx transfer (bits STAT_TX[1:0]). | |
#define | PCD_SET_EP_RX_STATUS(USBx, bEpNum, wState) |
sets the status for rx transfer (bits STAT_TX[1:0]) | |
#define | PCD_SET_EP_TXRX_STATUS(USBx, bEpNum, wStaterx, wStatetx) |
sets the status for rx & tx (bits STAT_TX[1:0] & STAT_RX[1:0]) | |
#define | PCD_GET_EP_TX_STATUS(USBx, bEpNum) ((uint16_t)PCD_GET_ENDPOINT((USBx), (bEpNum)) & USB_EPTX_STAT) |
gets the status for tx/rx transfer (bits STAT_TX[1:0] /STAT_RX[1:0]) | |
#define | PCD_GET_EP_RX_STATUS(USBx, bEpNum) ((uint16_t)PCD_GET_ENDPOINT((USBx), (bEpNum)) & USB_EPRX_STAT) |
#define | PCD_SET_EP_TX_VALID(USBx, bEpNum) (PCD_SET_EP_TX_STATUS((USBx), (bEpNum), USB_EP_TX_VALID)) |
sets directly the VALID tx/rx-status into the endpoint register | |
#define | PCD_SET_EP_RX_VALID(USBx, bEpNum) (PCD_SET_EP_RX_STATUS((USBx), (bEpNum), USB_EP_RX_VALID)) |
#define | PCD_GET_EP_TX_STALL_STATUS(USBx, bEpNum) (PCD_GET_EP_TX_STATUS((USBx), (bEpNum)) == USB_EP_TX_STALL) |
checks stall condition in an endpoint. | |
#define | PCD_GET_EP_RX_STALL_STATUS(USBx, bEpNum) (PCD_GET_EP_RX_STATUS((USBx), (bEpNum)) == USB_EP_RX_STALL) |
#define | PCD_SET_EP_KIND(USBx, bEpNum) |
set & clear EP_KIND bit. | |
#define | PCD_CLEAR_EP_KIND(USBx, bEpNum) |
#define | PCD_SET_OUT_STATUS(USBx, bEpNum) PCD_SET_EP_KIND((USBx), (bEpNum)) |
Sets/clears directly STATUS_OUT bit in the endpoint register. | |
#define | PCD_CLEAR_OUT_STATUS(USBx, bEpNum) PCD_CLEAR_EP_KIND((USBx), (bEpNum)) |
#define | PCD_SET_EP_DBUF(USBx, bEpNum) PCD_SET_EP_KIND((USBx), (bEpNum)) |
Sets/clears directly EP_KIND bit in the endpoint register. | |
#define | PCD_CLEAR_EP_DBUF(USBx, bEpNum) PCD_CLEAR_EP_KIND((USBx), (bEpNum)) |
#define | PCD_CLEAR_RX_EP_CTR(USBx, bEpNum) |
Clears bit CTR_RX / CTR_TX in the endpoint register. | |
#define | PCD_CLEAR_TX_EP_CTR(USBx, bEpNum) |
#define | PCD_RX_DTOG(USBx, bEpNum) |
Toggles DTOG_RX / DTOG_TX bit in the endpoint register. | |
#define | PCD_TX_DTOG(USBx, bEpNum) |
#define | PCD_CLEAR_RX_DTOG(USBx, bEpNum) |
Clears DTOG_RX / DTOG_TX bit in the endpoint register. | |
#define | PCD_CLEAR_TX_DTOG(USBx, bEpNum) |
#define | PCD_SET_EP_ADDRESS(USBx, bEpNum, bAddr) |
Sets address in an endpoint register. | |
#define | PCD_GET_EP_ADDRESS(USBx, bEpNum) ((uint8_t)(PCD_GET_ENDPOINT((USBx), (bEpNum)) & USB_EPADDR_FIELD)) |
Gets address in an endpoint register. | |
#define | PCD_EP_TX_CNT(USBx, bEpNum) |
#define | PCD_EP_RX_CNT(USBx, bEpNum) |
#define | PCD_SET_EP_TX_ADDRESS(USBx, bEpNum, wAddr) |
sets address of the tx/rx buffer. | |
#define | PCD_SET_EP_RX_ADDRESS(USBx, bEpNum, wAddr) |
#define | PCD_GET_EP_TX_ADDRESS(USBx, bEpNum) ((uint16_t)*PCD_EP_TX_ADDRESS((USBx), (bEpNum))) |
Gets address of the tx/rx buffer. | |
#define | PCD_GET_EP_RX_ADDRESS(USBx, bEpNum) ((uint16_t)*PCD_EP_RX_ADDRESS((USBx), (bEpNum))) |
#define | PCD_CALC_BLK32(pdwReg, wCount, wNBlocks) |
Sets counter of rx buffer with no. | |
#define | PCD_CALC_BLK2(pdwReg, wCount, wNBlocks) |
#define | PCD_SET_EP_CNT_RX_REG(pdwReg, wCount) |
#define | PCD_SET_EP_RX_DBUF0_CNT(USBx, bEpNum, wCount) |
#define | PCD_SET_EP_TX_CNT(USBx, bEpNum, wCount) |
sets counter for the tx/rx buffer. | |
#define | PCD_SET_EP_RX_CNT(USBx, bEpNum, wCount) |
#define | PCD_GET_EP_TX_CNT(USBx, bEpNum) ((uint32_t)(*PCD_EP_TX_CNT((USBx), (bEpNum))) & 0x3ffU) |
gets counter of the tx buffer. | |
#define | PCD_GET_EP_RX_CNT(USBx, bEpNum) ((uint32_t)(*PCD_EP_RX_CNT((USBx), (bEpNum))) & 0x3ffU) |
#define | PCD_SET_EP_DBUF0_ADDR(USBx, bEpNum, wBuf0Addr) |
Sets buffer 0/1 address in a double buffer endpoint. | |
#define | PCD_SET_EP_DBUF1_ADDR(USBx, bEpNum, wBuf1Addr) |
#define | PCD_SET_EP_DBUF_ADDR(USBx, bEpNum, wBuf0Addr, wBuf1Addr) |
Sets addresses in a double buffer endpoint. | |
#define | PCD_GET_EP_DBUF0_ADDR(USBx, bEpNum) (PCD_GET_EP_TX_ADDRESS((USBx), (bEpNum))) |
Gets buffer 0/1 address of a double buffer endpoint. | |
#define | PCD_GET_EP_DBUF1_ADDR(USBx, bEpNum) (PCD_GET_EP_RX_ADDRESS((USBx), (bEpNum))) |
#define | PCD_SET_EP_DBUF0_CNT(USBx, bEpNum, bDir, wCount) |
Gets buffer 0/1 address of a double buffer endpoint. | |
#define | PCD_SET_EP_DBUF1_CNT(USBx, bEpNum, bDir, wCount) |
#define | PCD_SET_EP_DBUF_CNT(USBx, bEpNum, bDir, wCount) |
#define | PCD_GET_EP_DBUF0_CNT(USBx, bEpNum) (PCD_GET_EP_TX_CNT((USBx), (bEpNum))) |
Gets buffer 0/1 rx/tx counter for double buffering. | |
#define | PCD_GET_EP_DBUF1_CNT(USBx, bEpNum) (PCD_GET_EP_RX_CNT((USBx), (bEpNum))) |
Typedefs | |
typedef USB_TypeDef | PCD_TypeDef |
typedef USB_CfgTypeDef | PCD_InitTypeDef |
typedef USB_EPTypeDef | PCD_EPTypeDef |
typedef struct __PCD_HandleTypeDef | PCD_HandleTypeDef |
PCD Handle Structure definition. | |
typedef void(* | pPCD_CallbackTypeDef )(PCD_HandleTypeDef *hpcd) |
typedef void(* | pPCD_DataOutStageCallbackTypeDef )(PCD_HandleTypeDef *hpcd, uint8_t epnum) |
typedef void(* | pPCD_DataInStageCallbackTypeDef )(PCD_HandleTypeDef *hpcd, uint8_t epnum) |
typedef void(* | pPCD_IsoOutIncpltCallbackTypeDef )(PCD_HandleTypeDef *hpcd, uint8_t epnum) |
typedef void(* | pPCD_IsoInIncpltCallbackTypeDef )(PCD_HandleTypeDef *hpcd, uint8_t epnum) |
Enumerations | |
enum | PCD_StateTypeDef { HAL_PCD_STATE_RESET = 0x00, HAL_PCD_STATE_READY = 0x01, HAL_PCD_STATE_ERROR = 0x02, HAL_PCD_STATE_BUSY = 0x03, HAL_PCD_STATE_TIMEOUT = 0x04 } |
PCD State structure definition. More... | |
enum | PCD_LPM_StateTypeDef { LPM_L0 = 0x00, LPM_L1 = 0x01, LPM_L2 = 0x02, LPM_L3 = 0x03 } |
enum | PCD_LPM_MsgTypeDef { PCD_LPM_L0_ACTIVE = 0x00, PCD_LPM_L1_ACTIVE = 0x01 } |
enum | PCD_BCD_MsgTypeDef { PCD_BCD_ERROR = 0xFF, PCD_BCD_CONTACT_DETECTION = 0xFE, PCD_BCD_STD_DOWNSTREAM_PORT = 0xFD, PCD_BCD_CHARGING_DOWNSTREAM_PORT = 0xFC, PCD_BCD_DEDICATED_CHARGING_PORT = 0xFB, PCD_BCD_DISCOVERY_COMPLETED = 0x00 } |
enum | HAL_PCD_CallbackIDTypeDef { HAL_PCD_SOF_CB_ID = 0x01, HAL_PCD_SETUPSTAGE_CB_ID = 0x02, HAL_PCD_RESET_CB_ID = 0x03, HAL_PCD_SUSPEND_CB_ID = 0x04, HAL_PCD_RESUME_CB_ID = 0x05, HAL_PCD_CONNECT_CB_ID = 0x06, HAL_PCD_DISCONNECT_CB_ID = 0x07, HAL_PCD_MSPINIT_CB_ID = 0x08, HAL_PCD_MSPDEINIT_CB_ID = 0x09 } |
Functions | |
HAL_StatusTypeDef | HAL_PCD_Init (PCD_HandleTypeDef *hpcd) |
Initializes the PCD according to the specified parameters in the PCD_InitTypeDef and initialize the associated handle. | |
HAL_StatusTypeDef | HAL_PCD_DeInit (PCD_HandleTypeDef *hpcd) |
DeInitializes the PCD peripheral. | |
__weak void | HAL_PCD_MspInit (PCD_HandleTypeDef *hpcd) |
Initializes the PCD MSP. | |
__weak void | HAL_PCD_MspDeInit (PCD_HandleTypeDef *hpcd) |
DeInitializes PCD MSP. | |
HAL_StatusTypeDef | HAL_PCD_RegisterCallback (PCD_HandleTypeDef *hpcd, HAL_PCD_CallbackIDTypeDef CallbackID, pPCD_CallbackTypeDef pCallback) |
Register a User USB PCD Callback To be used instead of the weak predefined callback. | |
HAL_StatusTypeDef | HAL_PCD_UnRegisterCallback (PCD_HandleTypeDef *hpcd, HAL_PCD_CallbackIDTypeDef CallbackID) |
Unregister an USB PCD Callback USB PCD callabck is redirected to the weak predefined callback. | |
HAL_StatusTypeDef | HAL_PCD_RegisterDataOutStageCallback (PCD_HandleTypeDef *hpcd, pPCD_DataOutStageCallbackTypeDef pCallback) |
Register USB PCD Data OUT Stage Callback To be used instead of the weak HAL_PCD_DataOutStageCallback() predefined callback. | |
HAL_StatusTypeDef | HAL_PCD_UnRegisterDataOutStageCallback (PCD_HandleTypeDef *hpcd) |
Unregister the USB PCD Data OUT Stage Callback USB PCD Data OUT Stage Callback is redirected to the weak HAL_PCD_DataOutStageCallback() predefined callback. | |
HAL_StatusTypeDef | HAL_PCD_RegisterDataInStageCallback (PCD_HandleTypeDef *hpcd, pPCD_DataInStageCallbackTypeDef pCallback) |
Register USB PCD Data IN Stage Callback To be used instead of the weak HAL_PCD_DataInStageCallback() predefined callback. | |
HAL_StatusTypeDef | HAL_PCD_UnRegisterDataInStageCallback (PCD_HandleTypeDef *hpcd) |
Unregister the USB PCD Data IN Stage Callback USB PCD Data OUT Stage Callback is redirected to the weak HAL_PCD_DataInStageCallback() predefined callback. | |
HAL_StatusTypeDef | HAL_PCD_RegisterIsoOutIncpltCallback (PCD_HandleTypeDef *hpcd, pPCD_IsoOutIncpltCallbackTypeDef pCallback) |
Register USB PCD Iso OUT incomplete Callback To be used instead of the weak HAL_PCD_ISOOUTIncompleteCallback() predefined callback. | |
HAL_StatusTypeDef | HAL_PCD_UnRegisterIsoOutIncpltCallback (PCD_HandleTypeDef *hpcd) |
Unregister the USB PCD Iso OUT incomplete Callback USB PCD Iso OUT incomplete Callback is redirected to the weak HAL_PCD_ISOOUTIncompleteCallback() predefined callback. | |
HAL_StatusTypeDef | HAL_PCD_RegisterIsoInIncpltCallback (PCD_HandleTypeDef *hpcd, pPCD_IsoInIncpltCallbackTypeDef pCallback) |
Register USB PCD Iso IN incomplete Callback To be used instead of the weak HAL_PCD_ISOINIncompleteCallback() predefined callback. | |
HAL_StatusTypeDef | HAL_PCD_UnRegisterIsoInIncpltCallback (PCD_HandleTypeDef *hpcd) |
Unregister the USB PCD Iso IN incomplete Callback USB PCD Iso IN incomplete Callback is redirected to the weak HAL_PCD_ISOINIncompleteCallback() predefined callback. | |
HAL_StatusTypeDef | HAL_PCD_Start (PCD_HandleTypeDef *hpcd) |
Start the USB device. | |
HAL_StatusTypeDef | HAL_PCD_Stop (PCD_HandleTypeDef *hpcd) |
Stop the USB device. | |
void | HAL_PCD_IRQHandler (PCD_HandleTypeDef *hpcd) |
This function handles PCD interrupt request. | |
void | HAL_PCD_WKUP_IRQHandler (PCD_HandleTypeDef *hpcd) |
Handles PCD Wakeup interrupt request. | |
__weak void | HAL_PCD_SOFCallback (PCD_HandleTypeDef *hpcd) |
USB Start Of Frame callback. | |
__weak void | HAL_PCD_SetupStageCallback (PCD_HandleTypeDef *hpcd) |
Setup stage callback. | |
__weak void | HAL_PCD_ResetCallback (PCD_HandleTypeDef *hpcd) |
USB Reset callback. | |
__weak void | HAL_PCD_SuspendCallback (PCD_HandleTypeDef *hpcd) |
Suspend event callback. | |
__weak void | HAL_PCD_ResumeCallback (PCD_HandleTypeDef *hpcd) |
Resume event callback. | |
__weak void | HAL_PCD_ConnectCallback (PCD_HandleTypeDef *hpcd) |
Connection event callback. | |
__weak void | HAL_PCD_DisconnectCallback (PCD_HandleTypeDef *hpcd) |
Disconnection event callback. | |
__weak void | HAL_PCD_DataOutStageCallback (PCD_HandleTypeDef *hpcd, uint8_t epnum) |
Data OUT stage callback. | |
__weak void | HAL_PCD_DataInStageCallback (PCD_HandleTypeDef *hpcd, uint8_t epnum) |
Data IN stage callback. | |
__weak void | HAL_PCD_ISOOUTIncompleteCallback (PCD_HandleTypeDef *hpcd, uint8_t epnum) |
Incomplete ISO OUT callback. | |
__weak void | HAL_PCD_ISOINIncompleteCallback (PCD_HandleTypeDef *hpcd, uint8_t epnum) |
Incomplete ISO IN callback. | |
HAL_StatusTypeDef | HAL_PCD_DevConnect (PCD_HandleTypeDef *hpcd) |
Connect the USB device. | |
HAL_StatusTypeDef | HAL_PCD_DevDisconnect (PCD_HandleTypeDef *hpcd) |
Disconnect the USB device. | |
HAL_StatusTypeDef | HAL_PCD_SetAddress (PCD_HandleTypeDef *hpcd, uint8_t address) |
Set the USB Device address. | |
HAL_StatusTypeDef | HAL_PCD_EP_Open (PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint16_t ep_mps, uint8_t ep_type) |
Open and configure an endpoint. | |
HAL_StatusTypeDef | HAL_PCD_EP_Close (PCD_HandleTypeDef *hpcd, uint8_t ep_addr) |
Deactivate an endpoint. | |
HAL_StatusTypeDef | HAL_PCD_EP_Receive (PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len) |
Receive an amount of data. | |
HAL_StatusTypeDef | HAL_PCD_EP_Transmit (PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint32_t len) |
Send an amount of data. | |
HAL_StatusTypeDef | HAL_PCD_EP_SetStall (PCD_HandleTypeDef *hpcd, uint8_t ep_addr) |
Set a STALL condition over an endpoint. | |
HAL_StatusTypeDef | HAL_PCD_EP_ClrStall (PCD_HandleTypeDef *hpcd, uint8_t ep_addr) |
Clear a STALL condition over in an endpoint. | |
HAL_StatusTypeDef | HAL_PCD_EP_Flush (PCD_HandleTypeDef *hpcd, uint8_t ep_addr) |
Flush an endpoint. | |
HAL_StatusTypeDef | HAL_PCD_ActivateRemoteWakeup (PCD_HandleTypeDef *hpcd) |
Activate remote wakeup signalling. | |
HAL_StatusTypeDef | HAL_PCD_DeActivateRemoteWakeup (PCD_HandleTypeDef *hpcd) |
De-activate remote wakeup signalling. | |
uint32_t | HAL_PCD_EP_GetRxCount (PCD_HandleTypeDef *hpcd, uint8_t ep_addr) |
Get Received Data Size. | |
PCD_StateTypeDef | HAL_PCD_GetState (PCD_HandleTypeDef *hpcd) |
Return the PCD handle state. |
Header file of PCD HAL module.
This software component is licensed by ST under BSD 3-Clause license, the "License"; You may not use this file except in compliance with the License. You may obtain a copy of the License at: opensource.org/licenses/BSD-3-Clause
Definition in file stm32f1xx_hal_pcd.h.