![]() |
|
|||
File indexing completed on 2025-05-11 08:23:35
0001 /** 0002 ****************************************************************************** 0003 * @file stm32h7xx_hal_jpeg.h 0004 * @author MCD Application Team 0005 * @brief Header file of JPEG HAL module. 0006 ****************************************************************************** 0007 * @attention 0008 * 0009 * Copyright (c) 2017 STMicroelectronics. 0010 * All rights reserved. 0011 * 0012 * This software is licensed under terms that can be found in the LICENSE file 0013 * in the root directory of this software component. 0014 * If no LICENSE file comes with this software, it is provided AS-IS. 0015 * 0016 ****************************************************************************** 0017 */ 0018 0019 /* Define to prevent recursive inclusion -------------------------------------*/ 0020 #ifndef STM32H7xx_HAL_JPEG_H 0021 #define STM32H7xx_HAL_JPEG_H 0022 0023 #ifdef __cplusplus 0024 extern "C" { 0025 #endif 0026 0027 /* Includes ------------------------------------------------------------------*/ 0028 #include "stm32h7xx_hal_def.h" 0029 0030 #if defined (JPEG) 0031 0032 /** @addtogroup STM32H7xx_HAL_Driver 0033 * @{ 0034 */ 0035 0036 /** @addtogroup JPEG 0037 * @{ 0038 */ 0039 0040 /* Exported types ------------------------------------------------------------*/ 0041 /** @defgroup JPEG_Exported_Types JPEG Exported Types 0042 * @ingroup RTEMSBSPsARMSTM32H7 0043 * @{ 0044 */ 0045 0046 /** @defgroup JPEG_Configuration_Structure_definition JPEG Configuration for encoding Structure definition 0047 * @ingroup RTEMSBSPsARMSTM32H7 0048 * @brief JPEG encoding configuration Structure definition 0049 * @{ 0050 */ 0051 typedef struct 0052 { 0053 uint32_t ColorSpace; /*!< Image Color space : gray-scale, YCBCR, RGB or CMYK 0054 This parameter can be a value of @ref JPEG_ColorSpace */ 0055 0056 uint32_t ChromaSubsampling; /*!< Chroma Subsampling in case of YCBCR or CMYK color space, 0-> 4:4:4 , 1-> 4:2:2, 2 -> 4:1:1, 3 -> 4:2:0 0057 This parameter can be a value of @ref JPEG_ChromaSubsampling */ 0058 0059 uint32_t ImageHeight; /*!< Image height : number of lines */ 0060 0061 uint32_t ImageWidth; /*!< Image width : number of pixels per line */ 0062 0063 uint32_t ImageQuality; /*!< Quality of the JPEG encoding : from 1 to 100 */ 0064 0065 } JPEG_ConfTypeDef; 0066 /** 0067 * @} 0068 */ 0069 0070 /** @defgroup HAL_JPEG_state_structure_definition HAL JPEG state structure definition 0071 * @ingroup RTEMSBSPsARMSTM32H7 0072 * @brief HAL JPEG State structure definition 0073 * @{ 0074 */ 0075 typedef enum 0076 { 0077 HAL_JPEG_STATE_RESET = 0x00U, /*!< JPEG not yet initialized or disabled */ 0078 HAL_JPEG_STATE_READY = 0x01U, /*!< JPEG initialized and ready for use */ 0079 HAL_JPEG_STATE_BUSY = 0x02U, /*!< JPEG internal processing is ongoing */ 0080 HAL_JPEG_STATE_BUSY_ENCODING = 0x03U, /*!< JPEG encoding processing is ongoing */ 0081 HAL_JPEG_STATE_BUSY_DECODING = 0x04U, /*!< JPEG decoding processing is ongoing */ 0082 HAL_JPEG_STATE_TIMEOUT = 0x05U, /*!< JPEG timeout state */ 0083 HAL_JPEG_STATE_ERROR = 0x06U /*!< JPEG error state */ 0084 } HAL_JPEG_STATETypeDef; 0085 0086 /** 0087 * @} 0088 */ 0089 0090 0091 /** @defgroup JPEG_handle_Structure_definition JPEG handle Structure definition 0092 * @ingroup RTEMSBSPsARMSTM32H7 0093 * @brief JPEG handle Structure definition 0094 * @{ 0095 */ 0096 #if (USE_HAL_JPEG_REGISTER_CALLBACKS == 1) 0097 typedef struct __JPEG_HandleTypeDef 0098 #else 0099 typedef struct 0100 #endif /* (USE_HAL_JPEG_REGISTER_CALLBACKS) */ 0101 { 0102 JPEG_TypeDef *Instance; /*!< JPEG peripheral register base address */ 0103 0104 JPEG_ConfTypeDef Conf; /*!< Current JPEG encoding/decoding parameters */ 0105 0106 uint8_t *pJpegInBuffPtr; /*!< Pointer to JPEG processing (encoding, decoding,...) input buffer */ 0107 0108 uint8_t *pJpegOutBuffPtr; /*!< Pointer to JPEG processing (encoding, decoding,...) output buffer */ 0109 0110 __IO uint32_t JpegInCount; /*!< Internal Counter of input data */ 0111 0112 __IO uint32_t JpegOutCount; /*!< Internal Counter of output data */ 0113 0114 uint32_t InDataLength; /*!< Input Buffer Length in Bytes */ 0115 0116 uint32_t OutDataLength; /*!< Output Buffer Length in Bytes */ 0117 0118 MDMA_HandleTypeDef *hdmain; /*!< JPEG In MDMA handle parameters */ 0119 0120 MDMA_HandleTypeDef *hdmaout; /*!< JPEG Out MDMA handle parameters */ 0121 0122 uint8_t CustomQuanTable; /*!< If set to 1 specify that user customized quantization tables are used */ 0123 0124 uint8_t *QuantTable0; /*!< Basic Quantization Table for component 0 */ 0125 0126 uint8_t *QuantTable1; /*!< Basic Quantization Table for component 1 */ 0127 0128 uint8_t *QuantTable2; /*!< Basic Quantization Table for component 2 */ 0129 0130 uint8_t *QuantTable3; /*!< Basic Quantization Table for component 3 */ 0131 0132 HAL_LockTypeDef Lock; /*!< JPEG locking object */ 0133 0134 __IO HAL_JPEG_STATETypeDef State; /*!< JPEG peripheral state */ 0135 0136 __IO uint32_t ErrorCode; /*!< JPEG Error code */ 0137 0138 __IO uint32_t Context; /*!< JPEG Internal context */ 0139 0140 #if (USE_HAL_JPEG_REGISTER_CALLBACKS == 1) 0141 void (*InfoReadyCallback)(struct __JPEG_HandleTypeDef *hjpeg, 0142 JPEG_ConfTypeDef *pInfo); /*!< JPEG Info ready callback */ 0143 void (*EncodeCpltCallback)(struct __JPEG_HandleTypeDef 0144 *hjpeg); /*!< JPEG Encode complete callback */ 0145 void (*DecodeCpltCallback)(struct __JPEG_HandleTypeDef 0146 *hjpeg); /*!< JPEG Decode complete callback */ 0147 void (*ErrorCallback)(struct __JPEG_HandleTypeDef 0148 *hjpeg); /*!< JPEG Error callback */ 0149 void (*GetDataCallback)(struct __JPEG_HandleTypeDef *hjpeg, 0150 uint32_t NbDecodedData); /*!< JPEG Get Data callback */ 0151 void (*DataReadyCallback)(struct __JPEG_HandleTypeDef *hjpeg, uint8_t *pDataOut, 0152 uint32_t OutDataLength); /*!< JPEG Data ready callback */ 0153 0154 void (* MspInitCallback)(struct __JPEG_HandleTypeDef *hjpeg); /*!< JPEG Msp Init callback */ 0155 void (* MspDeInitCallback)(struct __JPEG_HandleTypeDef 0156 *hjpeg); /*!< JPEG Msp DeInit callback */ 0157 0158 0159 #endif /* (USE_HAL_JPEG_REGISTER_CALLBACKS) */ 0160 0161 0162 } JPEG_HandleTypeDef; 0163 /** 0164 * @} 0165 */ 0166 0167 0168 #if (USE_HAL_JPEG_REGISTER_CALLBACKS == 1) 0169 /** @defgroup HAL_JPEG_Callback_ID_enumeration_definition HAL JPEG Callback ID enumeration definition 0170 * @ingroup RTEMSBSPsARMSTM32H7 0171 * @brief HAL JPEG Callback ID enumeration definition 0172 * @{ 0173 */ 0174 typedef enum 0175 { 0176 HAL_JPEG_ENCODE_CPLT_CB_ID = 0x01U, /*!< JPEG Encode Complete callback ID */ 0177 HAL_JPEG_DECODE_CPLT_CB_ID = 0x02U, /*!< JPEG Decode Complete callback ID */ 0178 HAL_JPEG_ERROR_CB_ID = 0x03U, /*!< JPEG Error callback ID */ 0179 0180 HAL_JPEG_MSPINIT_CB_ID = 0x04U, /*!< JPEG MspInit callback ID */ 0181 HAL_JPEG_MSPDEINIT_CB_ID = 0x05U /*!< JPEG MspDeInit callback ID */ 0182 0183 } HAL_JPEG_CallbackIDTypeDef; 0184 /** 0185 * @} 0186 */ 0187 0188 /** @defgroup HAL_JPEG_Callback_pointer_definition HAL JPEG Callback pointer definition 0189 * @ingroup RTEMSBSPsARMSTM32H7 0190 * @brief HAL JPEG Callback pointer definition 0191 * @{ 0192 */ 0193 typedef void (*pJPEG_CallbackTypeDef)(JPEG_HandleTypeDef *hjpeg); /*!< pointer to a common JPEG callback function */ 0194 typedef void (*pJPEG_InfoReadyCallbackTypeDef)(JPEG_HandleTypeDef *hjpeg, 0195 JPEG_ConfTypeDef *pInfo); /*!< pointer to an Info ready JPEG callback function */ 0196 typedef void (*pJPEG_GetDataCallbackTypeDef)(JPEG_HandleTypeDef *hjpeg, 0197 uint32_t NbDecodedData); /*!< pointer to a Get data JPEG callback function */ 0198 typedef void (*pJPEG_DataReadyCallbackTypeDef)(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataOut, 0199 uint32_t OutDataLength); /*!< pointer to a Data ready JPEG callback function */ 0200 /** 0201 * @} 0202 */ 0203 0204 #endif /* USE_HAL_JPEG_REGISTER_CALLBACKS */ 0205 0206 /** 0207 * @} 0208 */ 0209 0210 /* Exported constants --------------------------------------------------------*/ 0211 0212 /** @defgroup JPEG_Exported_Constants JPEG Exported Constants 0213 * @ingroup RTEMSBSPsARMSTM32H7 0214 * @{ 0215 */ 0216 0217 /** @defgroup JPEG_Error_Code_definition JPEG Error Code definition 0218 * @ingroup RTEMSBSPsARMSTM32H7 0219 * @brief JPEG Error Code definition 0220 * @{ 0221 */ 0222 0223 #define HAL_JPEG_ERROR_NONE ((uint32_t)0x00000000U) /*!< No error */ 0224 #define HAL_JPEG_ERROR_HUFF_TABLE ((uint32_t)0x00000001U) /*!< HUffman Table programming error */ 0225 #define HAL_JPEG_ERROR_QUANT_TABLE ((uint32_t)0x00000002U) /*!< Quantization Table programming error */ 0226 #define HAL_JPEG_ERROR_DMA ((uint32_t)0x00000004U) /*!< DMA transfer error */ 0227 #define HAL_JPEG_ERROR_TIMEOUT ((uint32_t)0x00000008U) /*!< Timeout error */ 0228 #if (USE_HAL_JPEG_REGISTER_CALLBACKS == 1) 0229 #define HAL_JPEG_ERROR_INVALID_CALLBACK ((uint32_t)0x00000010U) /*!< Invalid Callback error */ 0230 #endif /* USE_HAL_JPEG_REGISTER_CALLBACKS */ 0231 /** 0232 * @} 0233 */ 0234 0235 /** @defgroup JPEG_Quantization_Table_Size JPEG Quantization Table Size 0236 * @ingroup RTEMSBSPsARMSTM32H7 0237 * @brief JPEG Quantization Table Size 0238 * @{ 0239 */ 0240 #define JPEG_QUANT_TABLE_SIZE ((uint32_t)64U) /*!< JPEG Quantization Table Size in bytes */ 0241 /** 0242 * @} 0243 */ 0244 0245 0246 /** @defgroup JPEG_ColorSpace JPEG ColorSpace 0247 * @ingroup RTEMSBSPsARMSTM32H7 0248 * @brief JPEG Color Space 0249 * @{ 0250 */ 0251 #define JPEG_GRAYSCALE_COLORSPACE ((uint32_t)0x00000000U) 0252 #define JPEG_YCBCR_COLORSPACE JPEG_CONFR1_COLORSPACE_0 0253 #define JPEG_CMYK_COLORSPACE JPEG_CONFR1_COLORSPACE 0254 0255 0256 /** 0257 * @} 0258 */ 0259 0260 0261 /** @defgroup JPEG_ChromaSubsampling JPEG Chrominance Sampling 0262 * @ingroup RTEMSBSPsARMSTM32H7 0263 * @brief JPEG Chrominance Sampling 0264 * @{ 0265 */ 0266 #define JPEG_444_SUBSAMPLING ((uint32_t)0x00000000U) /*!< Chroma Subsampling 4:4:4 */ 0267 #define JPEG_420_SUBSAMPLING ((uint32_t)0x00000001U) /*!< Chroma Subsampling 4:2:0 */ 0268 #define JPEG_422_SUBSAMPLING ((uint32_t)0x00000002U) /*!< Chroma Subsampling 4:2:2 */ 0269 0270 /** 0271 * @} 0272 */ 0273 0274 /** @defgroup JPEG_ImageQuality JPEG Image Quality 0275 * @ingroup RTEMSBSPsARMSTM32H7 0276 * @brief JPEG Min and Max Image Quality 0277 * @{ 0278 */ 0279 #define JPEG_IMAGE_QUALITY_MIN ((uint32_t)1U) /*!< Minimum JPEG quality */ 0280 #define JPEG_IMAGE_QUALITY_MAX ((uint32_t)100U) /*!< Maximum JPEG quality */ 0281 0282 /** 0283 * @} 0284 */ 0285 0286 /** @defgroup JPEG_Interrupt_configuration_definition JPEG Interrupt configuration definition 0287 * @ingroup RTEMSBSPsARMSTM32H7 0288 * @brief JPEG Interrupt definition 0289 * @{ 0290 */ 0291 #define JPEG_IT_IFT ((uint32_t)JPEG_CR_IFTIE) /*!< Input FIFO Threshold Interrupt */ 0292 #define JPEG_IT_IFNF ((uint32_t)JPEG_CR_IFNFIE) /*!< Input FIFO Not Full Interrupt */ 0293 #define JPEG_IT_OFT ((uint32_t)JPEG_CR_OFTIE) /*!< Output FIFO Threshold Interrupt */ 0294 #define JPEG_IT_OFNE ((uint32_t)JPEG_CR_OFTIE) /*!< Output FIFO Not Empty Interrupt */ 0295 #define JPEG_IT_EOC ((uint32_t)JPEG_CR_EOCIE) /*!< End of Conversion Interrupt */ 0296 #define JPEG_IT_HPD ((uint32_t)JPEG_CR_HPDIE) /*!< Header Parsing Done Interrupt */ 0297 /** 0298 * @} 0299 */ 0300 0301 /** @defgroup JPEG_Flag_definition JPEG Flag definition 0302 * @ingroup RTEMSBSPsARMSTM32H7 0303 * @brief JPEG Flags definition 0304 * @{ 0305 */ 0306 #define JPEG_FLAG_IFTF ((uint32_t)JPEG_SR_IFTF) /*!< Input FIFO is not full and is below its threshold flag */ 0307 #define JPEG_FLAG_IFNFF ((uint32_t)JPEG_SR_IFNFF) /*!< Input FIFO Not Full Flag, a data can be written */ 0308 #define JPEG_FLAG_OFTF ((uint32_t)JPEG_SR_OFTF) /*!< Output FIFO is not empty and has reach its threshold */ 0309 #define JPEG_FLAG_OFNEF ((uint32_t)JPEG_SR_OFNEF) /*!< Output FIFO is not empty, a data is available */ 0310 #define JPEG_FLAG_EOCF ((uint32_t)JPEG_SR_EOCF) /*!< JPEG Codec core has finished the encoding or the decoding process and than last data has been sent to the output FIFO */ 0311 #define JPEG_FLAG_HPDF ((uint32_t)JPEG_SR_HPDF) /*!< JPEG Codec has finished the parsing of the headers and the internal registers have been updated */ 0312 #define JPEG_FLAG_COF ((uint32_t)JPEG_SR_COF) /*!< JPEG Codec operation on going flag*/ 0313 0314 #define JPEG_FLAG_ALL ((uint32_t)0x000000FEU) /*!< JPEG Codec All previous flag*/ 0315 /** 0316 * @} 0317 */ 0318 0319 /** @defgroup JPEG_PROCESS_PAUSE_RESUME_definition JPEG Process Pause Resume definition 0320 * @ingroup RTEMSBSPsARMSTM32H7 0321 * @brief JPEG process pause, resume definition 0322 * @{ 0323 */ 0324 #define JPEG_PAUSE_RESUME_INPUT ((uint32_t)0x00000001U) /*!< Pause/Resume Input FIFO Xfer*/ 0325 #define JPEG_PAUSE_RESUME_OUTPUT ((uint32_t)0x00000002U) /*!< Pause/Resume Output FIFO Xfer*/ 0326 #define JPEG_PAUSE_RESUME_INPUT_OUTPUT ((uint32_t)0x00000003U) /*!< Pause/Resume Input and Output FIFO Xfer*/ 0327 /** 0328 * @} 0329 */ 0330 0331 /** 0332 * @} 0333 */ 0334 /* Exported macro ------------------------------------------------------------*/ 0335 0336 /** @defgroup JPEG_Exported_Macros JPEG Exported Macros 0337 * @ingroup RTEMSBSPsARMSTM32H7 0338 * @{ 0339 */ 0340 0341 /** @brief Reset JPEG handle state 0342 * @param __HANDLE__ specifies the JPEG handle. 0343 * @retval None 0344 */ 0345 #if (USE_HAL_JPEG_REGISTER_CALLBACKS == 1) 0346 #define __HAL_JPEG_RESET_HANDLE_STATE(__HANDLE__) do{\ 0347 (__HANDLE__)->State = HAL_JPEG_STATE_RESET;\ 0348 (__HANDLE__)->MspInitCallback = NULL;\ 0349 (__HANDLE__)->MspDeInitCallback = NULL;\ 0350 }while(0) 0351 #else 0352 #define __HAL_JPEG_RESET_HANDLE_STATE(__HANDLE__) ( (__HANDLE__)->State = HAL_JPEG_STATE_RESET) 0353 #endif /* USE_HAL_JPEG_REGISTER_CALLBACKS */ 0354 0355 0356 /** 0357 * @brief Enable the JPEG peripheral. 0358 * @param __HANDLE__ specifies the JPEG handle. 0359 * @retval None 0360 */ 0361 #define __HAL_JPEG_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= JPEG_CR_JCEN) 0362 0363 /** 0364 * @brief Disable the JPEG peripheral. 0365 * @param __HANDLE__ specifies the JPEG handle. 0366 * @retval None 0367 */ 0368 #define __HAL_JPEG_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~JPEG_CR_JCEN) 0369 0370 0371 /** 0372 * @brief Check the specified JPEG status flag. 0373 * @param __HANDLE__ specifies the JPEG handle. 0374 * @param __FLAG__ specifies the flag to check 0375 * This parameter can be one of the following values: 0376 * @arg JPEG_FLAG_IFTF : The input FIFO is not full and is below its threshold flag 0377 * @arg JPEG_FLAG_IFNFF : The input FIFO Not Full Flag, a data can be written 0378 * @arg JPEG_FLAG_OFTF : The output FIFO is not empty and has reach its threshold 0379 * @arg JPEG_FLAG_OFNEF : The output FIFO is not empty, a data is available 0380 * @arg JPEG_FLAG_EOCF : JPEG Codec core has finished the encoding or the decoding process 0381 * and than last data has been sent to the output FIFO 0382 * @arg JPEG_FLAG_HPDF : JPEG Codec has finished the parsing of the headers 0383 * and the internal registers have been updated 0384 * @arg JPEG_FLAG_COF : JPEG Codec operation on going flag 0385 * 0386 * @retval __HAL_JPEG_GET_FLAG : returns The new state of __FLAG__ (TRUE or FALSE) 0387 */ 0388 0389 #define __HAL_JPEG_GET_FLAG(__HANDLE__,__FLAG__) (((__HANDLE__)->Instance->SR & (__FLAG__))) 0390 0391 /** 0392 * @brief Clear the specified JPEG status flag. 0393 * @param __HANDLE__ specifies the JPEG handle. 0394 * @param __FLAG__ specifies the flag to clear 0395 * This parameter can be one of the following values: 0396 * @arg JPEG_FLAG_EOCF : JPEG Codec core has finished the encoding or the decoding process 0397 * and than last data has been sent to the output FIFO 0398 * @arg JPEG_FLAG_HPDF : JPEG Codec has finished the parsing of the headers 0399 * @retval None 0400 */ 0401 0402 #define __HAL_JPEG_CLEAR_FLAG(__HANDLE__,__FLAG__) (((__HANDLE__)->Instance->CFR |= ((__FLAG__) & (JPEG_FLAG_EOCF | JPEG_FLAG_HPDF)))) 0403 0404 0405 /** 0406 * @brief Enable Interrupt. 0407 * @param __HANDLE__ specifies the JPEG handle. 0408 * @param __INTERRUPT__ specifies the interrupt to enable 0409 * This parameter can be one of the following values: 0410 * @arg JPEG_IT_IFT : Input FIFO Threshold Interrupt 0411 * @arg JPEG_IT_IFNF : Input FIFO Not Full Interrupt 0412 * @arg JPEG_IT_OFT : Output FIFO Threshold Interrupt 0413 * @arg JPEG_IT_OFNE : Output FIFO Not empty Interrupt 0414 * @arg JPEG_IT_EOC : End of Conversion Interrupt 0415 * @arg JPEG_IT_HPD : Header Parsing Done Interrupt 0416 * 0417 * @retval No return 0418 */ 0419 #define __HAL_JPEG_ENABLE_IT(__HANDLE__,__INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__) ) 0420 0421 /** 0422 * @brief Disable Interrupt. 0423 * @param __HANDLE__ specifies the JPEG handle. 0424 * @param __INTERRUPT__ specifies the interrupt to disable 0425 * This parameter can be one of the following values: 0426 * @arg JPEG_IT_IFT : Input FIFO Threshold Interrupt 0427 * @arg JPEG_IT_IFNF : Input FIFO Not Full Interrupt 0428 * @arg JPEG_IT_OFT : Output FIFO Threshold Interrupt 0429 * @arg JPEG_IT_OFNE : Output FIFO Not empty Interrupt 0430 * @arg JPEG_IT_EOC : End of Conversion Interrupt 0431 * @arg JPEG_IT_HPD : Header Parsing Done Interrupt 0432 * 0433 * @note To disable an IT we must use MODIFY_REG macro to avoid writing "1" to the FIFO flush bits 0434 * located in the same IT enable register (CR register). 0435 * @retval No return 0436 */ 0437 #define __HAL_JPEG_DISABLE_IT(__HANDLE__,__INTERRUPT__) MODIFY_REG((__HANDLE__)->Instance->CR, (__INTERRUPT__), 0UL) 0438 0439 0440 /** 0441 * @brief Get Interrupt state. 0442 * @param __HANDLE__ specifies the JPEG handle. 0443 * @param __INTERRUPT__ specifies the interrupt to check 0444 * This parameter can be one of the following values: 0445 * @arg JPEG_IT_IFT : Input FIFO Threshold Interrupt 0446 * @arg JPEG_IT_IFNF : Input FIFO Not Full Interrupt 0447 * @arg JPEG_IT_OFT : Output FIFO Threshold Interrupt 0448 * @arg JPEG_IT_OFNE : Output FIFO Not empty Interrupt 0449 * @arg JPEG_IT_EOC : End of Conversion Interrupt 0450 * @arg JPEG_IT_HPD : Header Parsing Done Interrupt 0451 * 0452 * @retval returns The new state of __INTERRUPT__ (Enabled or disabled) 0453 */ 0454 #define __HAL_JPEG_GET_IT_SOURCE(__HANDLE__,__INTERRUPT__) ((__HANDLE__)->Instance->CR & (__INTERRUPT__)) 0455 0456 /** 0457 * @} 0458 */ 0459 0460 /* Exported functions --------------------------------------------------------*/ 0461 /** @addtogroup JPEG_Exported_Functions 0462 * @{ 0463 */ 0464 0465 /** @addtogroup JPEG_Exported_Functions_Group1 0466 * @{ 0467 */ 0468 /* Initialization/de-initialization functions ********************************/ 0469 HAL_StatusTypeDef HAL_JPEG_Init(JPEG_HandleTypeDef *hjpeg); 0470 HAL_StatusTypeDef HAL_JPEG_DeInit(JPEG_HandleTypeDef *hjpeg); 0471 void HAL_JPEG_MspInit(JPEG_HandleTypeDef *hjpeg); 0472 void HAL_JPEG_MspDeInit(JPEG_HandleTypeDef *hjpeg); 0473 0474 #if (USE_HAL_JPEG_REGISTER_CALLBACKS == 1) 0475 HAL_StatusTypeDef HAL_JPEG_RegisterCallback(JPEG_HandleTypeDef *hjpeg, HAL_JPEG_CallbackIDTypeDef CallbackID, 0476 pJPEG_CallbackTypeDef pCallback); 0477 HAL_StatusTypeDef HAL_JPEG_UnRegisterCallback(JPEG_HandleTypeDef *hjpeg, HAL_JPEG_CallbackIDTypeDef CallbackID); 0478 0479 HAL_StatusTypeDef HAL_JPEG_RegisterInfoReadyCallback(JPEG_HandleTypeDef *hjpeg, 0480 pJPEG_InfoReadyCallbackTypeDef pCallback); 0481 HAL_StatusTypeDef HAL_JPEG_UnRegisterInfoReadyCallback(JPEG_HandleTypeDef *hjpeg); 0482 0483 HAL_StatusTypeDef HAL_JPEG_RegisterGetDataCallback(JPEG_HandleTypeDef *hjpeg, pJPEG_GetDataCallbackTypeDef pCallback); 0484 HAL_StatusTypeDef HAL_JPEG_UnRegisterGetDataCallback(JPEG_HandleTypeDef *hjpeg); 0485 0486 HAL_StatusTypeDef HAL_JPEG_RegisterDataReadyCallback(JPEG_HandleTypeDef *hjpeg, 0487 pJPEG_DataReadyCallbackTypeDef pCallback); 0488 HAL_StatusTypeDef HAL_JPEG_UnRegisterDataReadyCallback(JPEG_HandleTypeDef *hjpeg); 0489 0490 #endif /* USE_HAL_JPEG_REGISTER_CALLBACKS */ 0491 0492 /** 0493 * @} 0494 */ 0495 0496 /** @addtogroup JPEG_Exported_Functions_Group2 0497 * @{ 0498 */ 0499 /* Encoding/Decoding Configuration functions ********************************/ 0500 HAL_StatusTypeDef HAL_JPEG_ConfigEncoding(JPEG_HandleTypeDef *hjpeg, JPEG_ConfTypeDef *pConf); 0501 HAL_StatusTypeDef HAL_JPEG_GetInfo(JPEG_HandleTypeDef *hjpeg, JPEG_ConfTypeDef *pInfo); 0502 HAL_StatusTypeDef HAL_JPEG_EnableHeaderParsing(JPEG_HandleTypeDef *hjpeg); 0503 HAL_StatusTypeDef HAL_JPEG_DisableHeaderParsing(JPEG_HandleTypeDef *hjpeg); 0504 HAL_StatusTypeDef HAL_JPEG_SetUserQuantTables(JPEG_HandleTypeDef *hjpeg, uint8_t *QTable0, uint8_t *QTable1, 0505 uint8_t *QTable2, uint8_t *QTable3); 0506 0507 /** 0508 * @} 0509 */ 0510 0511 /** @addtogroup JPEG_Exported_Functions_Group3 0512 * @{ 0513 */ 0514 /* JPEG processing functions **************************************/ 0515 HAL_StatusTypeDef HAL_JPEG_Encode(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataInMCU, uint32_t InDataLength, 0516 uint8_t *pDataOut, uint32_t OutDataLength, uint32_t Timeout); 0517 HAL_StatusTypeDef HAL_JPEG_Decode(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataIn, uint32_t InDataLength, 0518 uint8_t *pDataOutMCU, uint32_t OutDataLength, uint32_t Timeout); 0519 HAL_StatusTypeDef HAL_JPEG_Encode_IT(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataInMCU, uint32_t InDataLength, 0520 uint8_t *pDataOut, uint32_t OutDataLength); 0521 HAL_StatusTypeDef HAL_JPEG_Decode_IT(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataIn, uint32_t InDataLength, 0522 uint8_t *pDataOutMCU, uint32_t OutDataLength); 0523 HAL_StatusTypeDef HAL_JPEG_Encode_DMA(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataInMCU, uint32_t InDataLength, 0524 uint8_t *pDataOut, uint32_t OutDataLength); 0525 HAL_StatusTypeDef HAL_JPEG_Decode_DMA(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataIn, uint32_t InDataLength, 0526 uint8_t *pDataOutMCU, uint32_t OutDataLength); 0527 HAL_StatusTypeDef HAL_JPEG_Pause(JPEG_HandleTypeDef *hjpeg, uint32_t XferSelection); 0528 HAL_StatusTypeDef HAL_JPEG_Resume(JPEG_HandleTypeDef *hjpeg, uint32_t XferSelection); 0529 void HAL_JPEG_ConfigInputBuffer(JPEG_HandleTypeDef *hjpeg, uint8_t *pNewInputBuffer, uint32_t InDataLength); 0530 void HAL_JPEG_ConfigOutputBuffer(JPEG_HandleTypeDef *hjpeg, uint8_t *pNewOutputBuffer, uint32_t OutDataLength); 0531 HAL_StatusTypeDef HAL_JPEG_Abort(JPEG_HandleTypeDef *hjpeg); 0532 0533 /** 0534 * @} 0535 */ 0536 0537 /** @addtogroup JPEG_Exported_Functions_Group4 0538 * @{ 0539 */ 0540 /* JPEG Decode/Encode callback functions ********************************************************/ 0541 void HAL_JPEG_InfoReadyCallback(JPEG_HandleTypeDef *hjpeg, JPEG_ConfTypeDef *pInfo); 0542 void HAL_JPEG_EncodeCpltCallback(JPEG_HandleTypeDef *hjpeg); 0543 void HAL_JPEG_DecodeCpltCallback(JPEG_HandleTypeDef *hjpeg); 0544 void HAL_JPEG_ErrorCallback(JPEG_HandleTypeDef *hjpeg); 0545 void HAL_JPEG_GetDataCallback(JPEG_HandleTypeDef *hjpeg, uint32_t NbDecodedData); 0546 void HAL_JPEG_DataReadyCallback(JPEG_HandleTypeDef *hjpeg, uint8_t *pDataOut, uint32_t OutDataLength); 0547 0548 /** 0549 * @} 0550 */ 0551 0552 /** @addtogroup JPEG_Exported_Functions_Group5 0553 * @{ 0554 */ 0555 /* JPEG IRQ handler management ******************************************************/ 0556 void HAL_JPEG_IRQHandler(JPEG_HandleTypeDef *hjpeg); 0557 0558 /** 0559 * @} 0560 */ 0561 0562 /** @addtogroup JPEG_Exported_Functions_Group6 0563 * @{ 0564 */ 0565 /* Peripheral State and Error functions ************************************************/ 0566 HAL_JPEG_STATETypeDef HAL_JPEG_GetState(JPEG_HandleTypeDef *hjpeg); 0567 uint32_t HAL_JPEG_GetError(JPEG_HandleTypeDef *hjpeg); 0568 0569 /** 0570 * @} 0571 */ 0572 0573 /** 0574 * @} 0575 */ 0576 0577 /* Private types -------------------------------------------------------------*/ 0578 /** @defgroup JPEG_Private_Types JPEG Private Types 0579 * @ingroup RTEMSBSPsARMSTM32H7 0580 * @{ 0581 */ 0582 0583 /** 0584 * @} 0585 */ 0586 0587 /* Private defines -----------------------------------------------------------*/ 0588 /** @defgroup JPEG_Private_Defines JPEG Private Defines 0589 * @ingroup RTEMSBSPsARMSTM32H7 0590 * @{ 0591 */ 0592 0593 /** 0594 * @} 0595 */ 0596 0597 /* Private variables ---------------------------------------------------------*/ 0598 /** @defgroup JPEG_Private_Variables JPEG Private Variables 0599 * @ingroup RTEMSBSPsARMSTM32H7 0600 * @{ 0601 */ 0602 0603 /** 0604 * @} 0605 */ 0606 0607 /* Private constants ---------------------------------------------------------*/ 0608 /** @defgroup JPEG_Private_Constants JPEG Private Constants 0609 * @ingroup RTEMSBSPsARMSTM32H7 0610 * @{ 0611 */ 0612 0613 /** 0614 * @} 0615 */ 0616 0617 /* Private macros ------------------------------------------------------------*/ 0618 /** @defgroup JPEG_Private_Macros JPEG Private Macros 0619 * @ingroup RTEMSBSPsARMSTM32H7 0620 * @{ 0621 */ 0622 0623 #define IS_JPEG_CHROMASUBSAMPLING(SUBSAMPLING) (((SUBSAMPLING) == JPEG_444_SUBSAMPLING) || \ 0624 ((SUBSAMPLING) == JPEG_420_SUBSAMPLING) || \ 0625 ((SUBSAMPLING) == JPEG_422_SUBSAMPLING)) 0626 0627 #define IS_JPEG_IMAGE_QUALITY(NUMBER) (((NUMBER) >= JPEG_IMAGE_QUALITY_MIN) && ((NUMBER) <= JPEG_IMAGE_QUALITY_MAX)) 0628 0629 #define IS_JPEG_COLORSPACE(COLORSPACE) (((COLORSPACE) == JPEG_GRAYSCALE_COLORSPACE) || \ 0630 ((COLORSPACE) == JPEG_YCBCR_COLORSPACE) || \ 0631 ((COLORSPACE) == JPEG_CMYK_COLORSPACE)) 0632 0633 #define IS_JPEG_PAUSE_RESUME_STATE(VALUE) (((VALUE) == JPEG_PAUSE_RESUME_INPUT) || \ 0634 ((VALUE) == JPEG_PAUSE_RESUME_OUTPUT)|| \ 0635 ((VALUE) == JPEG_PAUSE_RESUME_INPUT_OUTPUT)) 0636 0637 /** 0638 * @} 0639 */ 0640 0641 /* Private functions prototypes ----------------------------------------------*/ 0642 /** @defgroup JPEG_Private_Functions_Prototypes JPEG Private Functions Prototypes 0643 * @ingroup RTEMSBSPsARMSTM32H7 0644 * @{ 0645 */ 0646 0647 /** 0648 * @} 0649 */ 0650 0651 /* Private functions ---------------------------------------------------------*/ 0652 /** @defgroup JPEG_Private_Functions JPEG Private Functions 0653 * @ingroup RTEMSBSPsARMSTM32H7 0654 * @{ 0655 */ 0656 0657 /** 0658 * @} 0659 */ 0660 0661 /** 0662 * @} 0663 */ 0664 0665 /** 0666 * @} 0667 */ 0668 0669 #endif /* JPEG */ 0670 0671 #ifdef __cplusplus 0672 } 0673 #endif 0674 0675 #endif /* STM32H7xx_HAL_JPEG_H */ 0676
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |