Copyright (c) LibDriver
14 | * All rights reserved.
15 | *
16 | * The MIT License (MIT)
17 | *
18 | * Permission is hereby granted, free of charge, to any person obtaining a copy
19 | * of this software and associated documentation files (the "Software"), to deal
20 | * in the Software without restriction, including without limitation the rights
21 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
22 | * copies of the Software, and to permit persons to whom the Software is
23 | * furnished to do so, subject to the following conditions:
24 | *
25 | * The above copyright notice and this permission notice shall be included in all
26 | * copies or substantial portions of the Software.
27 | *
28 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
29 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
30 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
31 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
32 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
33 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
34 | * SOFTWARE.
35 | */
36 |
--------------------------------------------------------------------------------
/interface/driver_mifare_ultralight_interface_template.c:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015 - present LibDriver All rights reserved
3 | *
4 | * The MIT License (MIT)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | * @file driver_mifare_ultralight_interface_template.c
25 | * @brief driver mifare_ultralight interface template source file
26 | * @version 1.0.0
27 | * @author Shifeng Li
28 | * @date 2022-06-30
29 | *
30 | *
history
31 | *
32 | *
Date
Version
Author
Description
33 | *
2022/06/30
1.0
Shifeng Li
first upload
34 | *
35 | */
36 |
37 | #include "driver_mifare_ultralight_interface.h"
38 |
39 | /**
40 | * @brief interface contactless init
41 | * @return status code
42 | * - 0 success
43 | * - 1 contactless init failed
44 | * @note none
45 | */
46 | uint8_t mifare_ultralight_interface_contactless_init(void)
47 | {
48 | return 0;
49 | }
50 |
51 | /**
52 | * @brief interface contactless deinit
53 | * @return status code
54 | * - 0 success
55 | * - 1 contactless deinit failed
56 | * @note none
57 | */
58 | uint8_t mifare_ultralight_interface_contactless_deinit(void)
59 | {
60 | return 0;
61 | }
62 |
63 | /**
64 | * @brief interface contactless transceiver
65 | * @param[in] *in_buf pointer to a input buffer
66 | * @param[in] in_len input length
67 | * @param[out] *out_buf pointer to a output buffer
68 | * @param[in,out] *out_len pointer to a output length buffer
69 | * @return status code
70 | * - 0 success
71 | * - 1 contactless transceiver failed
72 | * @note none
73 | */
74 | uint8_t mifare_ultralight_interface_contactless_transceiver(uint8_t *in_buf, uint8_t in_len, uint8_t *out_buf, uint8_t *out_len)
75 | {
76 | return 0;
77 | }
78 |
79 | /**
80 | * @brief interface delay ms
81 | * @param[in] ms time
82 | * @note none
83 | */
84 | void mifare_ultralight_interface_delay_ms(uint32_t ms)
85 | {
86 |
87 | }
88 |
89 | /**
90 | * @brief interface print format data
91 | * @param[in] fmt format data
92 | * @note none
93 | */
94 | void mifare_ultralight_interface_debug_print(const char *const fmt, ...)
95 | {
96 |
97 | }
98 |
--------------------------------------------------------------------------------
/misra/mifare_ultralight_polyspace_report.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libdriver/mifare_ultralight/451c37ccd2cae6ebba3314391cb1013af7713a27/misra/mifare_ultralight_polyspace_report.pdf
--------------------------------------------------------------------------------
/project/raspberrypi4b/J8Header.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libdriver/mifare_ultralight/451c37ccd2cae6ebba3314391cb1013af7713a27/project/raspberrypi4b/J8Header.jpg
--------------------------------------------------------------------------------
/project/raspberrypi4b/cmake/VERSION:
--------------------------------------------------------------------------------
1 | 1.0.0
--------------------------------------------------------------------------------
/project/raspberrypi4b/cmake/config.cmake.in:
--------------------------------------------------------------------------------
1 | #
2 | # Copyright (c) 2015 - present LibDriver All rights reserved
3 | #
4 | # The MIT License (MIT)
5 | #
6 | # Permission is hereby granted, free of charge, to any person obtaining a copy
7 | # of this software and associated documentation files (the "Software"), to deal
8 | # in the Software without restriction, including without limitation the rights
9 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | # copies of the Software, and to permit persons to whom the Software is
11 | # furnished to do so, subject to the following conditions:
12 | #
13 | # The above copyright notice and this permission notice shall be included in all
14 | # copies or substantial portions of the Software.
15 | #
16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | # SOFTWARE.
23 | #
24 |
25 | # set the package init
26 | @PACKAGE_INIT@
27 |
28 | # include dependency macro
29 | include(CMakeFindDependencyMacro)
30 |
31 | # find the pkgconfig and use this tool to find the third party packages
32 | find_package(PkgConfig REQUIRED)
33 |
34 | # find the third party packages with pkgconfig
35 | pkg_search_module(GPIOD REQUIRED libgpiod)
36 |
37 | # include the cmake targets
38 | include(${CMAKE_CURRENT_LIST_DIR}/@CMAKE_PROJECT_NAME@-targets.cmake)
39 |
40 | # get the include header directories
41 | get_target_property(@CMAKE_PROJECT_NAME@_INCLUDE_DIRS @CMAKE_PROJECT_NAME@ INTERFACE_INCLUDE_DIRECTORIES)
42 |
43 | # get the library directories
44 | get_target_property(@CMAKE_PROJECT_NAME@_LIBRARIES @CMAKE_PROJECT_NAME@ IMPORTED_LOCATION_RELEASE)
45 |
--------------------------------------------------------------------------------
/project/raspberrypi4b/cmake/uninstall.cmake:
--------------------------------------------------------------------------------
1 | #
2 | # Copyright (c) 2015 - present LibDriver All rights reserved
3 | #
4 | # The MIT License (MIT)
5 | #
6 | # Permission is hereby granted, free of charge, to any person obtaining a copy
7 | # of this software and associated documentation files (the "Software"), to deal
8 | # in the Software without restriction, including without limitation the rights
9 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | # copies of the Software, and to permit persons to whom the Software is
11 | # furnished to do so, subject to the following conditions:
12 | #
13 | # The above copyright notice and this permission notice shall be included in all
14 | # copies or substantial portions of the Software.
15 | #
16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | # SOFTWARE.
23 | #
24 |
25 | # check the install_manifest.txt
26 | if(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt")
27 | # output the error
28 | message(FATAL_ERROR "cannot find install manifest: ${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt")
29 | endif()
30 |
31 | # read install_manifest.txt to uninstall_list
32 | file(READ "${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt" ${CMAKE_PROJECT_NAME}_uninstall_list)
33 |
34 | # replace '\n' to ';'
35 | string(REGEX REPLACE "\n" ";" ${CMAKE_PROJECT_NAME}_uninstall_list "${${CMAKE_PROJECT_NAME}_uninstall_list}")
36 |
37 | # uninstall the list files
38 | foreach(${CMAKE_PROJECT_NAME}_uninstall_list ${${CMAKE_PROJECT_NAME}_uninstall_list})
39 | # if a link or a file
40 | if(IS_SYMLINK "$ENV{DESTDIR}${${CMAKE_PROJECT_NAME}_uninstall_list}" OR EXISTS "$ENV{DESTDIR}${${CMAKE_PROJECT_NAME}_uninstall_list}")
41 | # delete the file
42 | execute_process(COMMAND ${CMAKE_COMMAND} -E remove ${${CMAKE_PROJECT_NAME}_uninstall_list}
43 | RESULT_VARIABLE rm_retval
44 | )
45 |
46 | # check the retval
47 | if(NOT "${rm_retval}" STREQUAL 0)
48 | # output the error
49 | message(FATAL_ERROR "failed to remove file: '${${CMAKE_PROJECT_NAME}_uninstall_list}'.")
50 | else()
51 | # uninstalling files
52 | message(STATUS "uninstalling: $ENV{DESTDIR}${${CMAKE_PROJECT_NAME}_uninstall_list}")
53 | endif()
54 | else()
55 | # output the error
56 | message(STATUS "file: $ENV{DESTDIR}${${CMAKE_PROJECT_NAME}_uninstall_list} does not exist.")
57 | endif()
58 | endforeach()
59 |
--------------------------------------------------------------------------------
/project/stm32f407/EW/stm32f407.dep:
--------------------------------------------------------------------------------
1 |
2 |
3 | 5
4 | 1497231023
5 |
6 | Release
7 |
8 | $PROJ_DIR$\..\usr\src\main.c
9 | $PROJ_DIR$\..\usr\src\stm32f4xx_it.c
10 | $PROJ_DIR$\..\usr\src\system_stm32f4xx.c
11 | $PROJ_DIR$\..\usr\src\stm32f4xx_hal_msp.c
12 | $PROJ_DIR$\..\usr\src\shell.c
13 | $PROJ_DIR$\..\usr\src\getopt.c
14 |
15 |
16 | [REBUILD_ALL]
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/project/stm32f407/EW/stm32f407.eww:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | $WS_DIR$\stm32f407.ewp
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/project/stm32f407/cmsis/cmsis_version.h:
--------------------------------------------------------------------------------
1 | /**************************************************************************//**
2 | * @file cmsis_version.h
3 | * @brief CMSIS Core(M) Version definitions
4 | * @version V5.0.2
5 | * @date 19. April 2017
6 | ******************************************************************************/
7 | /*
8 | * Copyright (c) 2009-2017 ARM Limited. All rights reserved.
9 | *
10 | * SPDX-License-Identifier: Apache-2.0
11 | *
12 | * Licensed under the Apache License, Version 2.0 (the License); you may
13 | * not use this file except in compliance with the License.
14 | * You may obtain a copy of the License at
15 | *
16 | * www.apache.org/licenses/LICENSE-2.0
17 | *
18 | * Unless required by applicable law or agreed to in writing, software
19 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
20 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 | * See the License for the specific language governing permissions and
22 | * limitations under the License.
23 | */
24 |
25 | #if defined ( __ICCARM__ )
26 | #pragma system_include /* treat file as system include file for MISRA check */
27 | #elif defined (__clang__)
28 | #pragma clang system_header /* treat file as system include file */
29 | #endif
30 |
31 | #ifndef __CMSIS_VERSION_H
32 | #define __CMSIS_VERSION_H
33 |
34 | /* CMSIS Version definitions */
35 | #define __CM_CMSIS_VERSION_MAIN ( 5U) /*!< [31:16] CMSIS Core(M) main version */
36 | #define __CM_CMSIS_VERSION_SUB ( 1U) /*!< [15:0] CMSIS Core(M) sub version */
37 | #define __CM_CMSIS_VERSION ((__CM_CMSIS_VERSION_MAIN << 16U) | \
38 | __CM_CMSIS_VERSION_SUB ) /*!< CMSIS Core(M) version number */
39 | #endif
40 |
--------------------------------------------------------------------------------
/project/stm32f407/cmsis/tz_context.h:
--------------------------------------------------------------------------------
1 | /******************************************************************************
2 | * @file tz_context.h
3 | * @brief Context Management for Armv8-M TrustZone
4 | * @version V1.0.1
5 | * @date 10. January 2018
6 | ******************************************************************************/
7 | /*
8 | * Copyright (c) 2017-2018 Arm Limited. All rights reserved.
9 | *
10 | * SPDX-License-Identifier: Apache-2.0
11 | *
12 | * Licensed under the Apache License, Version 2.0 (the License); you may
13 | * not use this file except in compliance with the License.
14 | * You may obtain a copy of the License at
15 | *
16 | * www.apache.org/licenses/LICENSE-2.0
17 | *
18 | * Unless required by applicable law or agreed to in writing, software
19 | * distributed under the License is distributed on an AS IS BASIS, WITHOUT
20 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 | * See the License for the specific language governing permissions and
22 | * limitations under the License.
23 | */
24 |
25 | #if defined ( __ICCARM__ )
26 | #pragma system_include /* treat file as system include file for MISRA check */
27 | #elif defined (__clang__)
28 | #pragma clang system_header /* treat file as system include file */
29 | #endif
30 |
31 | #ifndef TZ_CONTEXT_H
32 | #define TZ_CONTEXT_H
33 |
34 | #include
35 |
36 | #ifndef TZ_MODULEID_T
37 | #define TZ_MODULEID_T
38 | /// \details Data type that identifies secure software modules called by a process.
39 | typedef uint32_t TZ_ModuleId_t;
40 | #endif
41 |
42 | /// \details TZ Memory ID identifies an allocated memory slot.
43 | typedef uint32_t TZ_MemoryId_t;
44 |
45 | /// Initialize secure context memory system
46 | /// \return execution status (1: success, 0: error)
47 | uint32_t TZ_InitContextSystem_S (void);
48 |
49 | /// Allocate context memory for calling secure software modules in TrustZone
50 | /// \param[in] module identifies software modules called from non-secure mode
51 | /// \return value != 0 id TrustZone memory slot identifier
52 | /// \return value 0 no memory available or internal error
53 | TZ_MemoryId_t TZ_AllocModuleContext_S (TZ_ModuleId_t module);
54 |
55 | /// Free context memory that was previously allocated with \ref TZ_AllocModuleContext_S
56 | /// \param[in] id TrustZone memory slot identifier
57 | /// \return execution status (1: success, 0: error)
58 | uint32_t TZ_FreeModuleContext_S (TZ_MemoryId_t id);
59 |
60 | /// Load secure context (called on RTOS thread context switch)
61 | /// \param[in] id TrustZone memory slot identifier
62 | /// \return execution status (1: success, 0: error)
63 | uint32_t TZ_LoadContext_S (TZ_MemoryId_t id);
64 |
65 | /// Store secure context (called on RTOS thread context switch)
66 | /// \param[in] id TrustZone memory slot identifier
67 | /// \return execution status (1: success, 0: error)
68 | uint32_t TZ_StoreContext_S (TZ_MemoryId_t id);
69 |
70 | #endif // TZ_CONTEXT_H
71 |
--------------------------------------------------------------------------------
/project/stm32f407/hal/inc/stm32_assert_template.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32_assert.h
4 | * @author MCD Application Team
5 | * @brief STM32 assert template file.
6 | * This file should be copied to the application folder and renamed
7 | * to stm32_assert.h.
8 | ******************************************************************************
9 | * @attention
10 | *
11 | * Copyright (c) 2017 STMicroelectronics.
12 | * All rights reserved.
13 | *
14 | * This software is licensed under terms that can be found in the LICENSE file
15 | * in the root directory of this software component.
16 | * If no LICENSE file comes with this software, it is provided AS-IS.
17 | *
18 | ******************************************************************************
19 | */
20 |
21 | /* Define to prevent recursive inclusion -------------------------------------*/
22 | #ifndef __STM32_ASSERT_H
23 | #define __STM32_ASSERT_H
24 |
25 | #ifdef __cplusplus
26 | extern "C" {
27 | #endif
28 |
29 | /* Exported types ------------------------------------------------------------*/
30 | /* Exported constants --------------------------------------------------------*/
31 | /* Includes ------------------------------------------------------------------*/
32 | /* Exported macro ------------------------------------------------------------*/
33 | #ifdef USE_FULL_ASSERT
34 | /**
35 | * @brief The assert_param macro is used for function's parameters check.
36 | * @param expr If expr is false, it calls assert_failed function
37 | * which reports the name of the source file and the source
38 | * line number of the call that failed.
39 | * If expr is true, it returns no value.
40 | * @retval None
41 | */
42 | #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))
43 | /* Exported functions ------------------------------------------------------- */
44 | void assert_failed(uint8_t* file, uint32_t line);
45 | #else
46 | #define assert_param(expr) ((void)0U)
47 | #endif /* USE_FULL_ASSERT */
48 |
49 | #ifdef __cplusplus
50 | }
51 | #endif
52 |
53 | #endif /* __STM32_ASSERT_H */
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/project/stm32f407/hal/inc/stm32f4xx_hal_dma_ex.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f4xx_hal_dma_ex.h
4 | * @author MCD Application Team
5 | * @brief Header file of DMA HAL extension module.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * Copyright (c) 2017 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software is licensed under terms that can be found in the LICENSE file in
13 | * the root directory of this software component.
14 | * If no LICENSE file comes with this software, it is provided AS-IS.
15 | *
16 | ******************************************************************************
17 | */
18 |
19 | /* Define to prevent recursive inclusion -------------------------------------*/
20 | #ifndef __STM32F4xx_HAL_DMA_EX_H
21 | #define __STM32F4xx_HAL_DMA_EX_H
22 |
23 | #ifdef __cplusplus
24 | extern "C" {
25 | #endif
26 |
27 | /* Includes ------------------------------------------------------------------*/
28 | #include "stm32f4xx_hal_def.h"
29 |
30 | /** @addtogroup STM32F4xx_HAL_Driver
31 | * @{
32 | */
33 |
34 | /** @addtogroup DMAEx
35 | * @{
36 | */
37 |
38 | /* Exported types ------------------------------------------------------------*/
39 | /** @defgroup DMAEx_Exported_Types DMAEx Exported Types
40 | * @brief DMAEx Exported types
41 | * @{
42 | */
43 |
44 | /**
45 | * @brief HAL DMA Memory definition
46 | */
47 | typedef enum
48 | {
49 | MEMORY0 = 0x00U, /*!< Memory 0 */
50 | MEMORY1 = 0x01U /*!< Memory 1 */
51 | }HAL_DMA_MemoryTypeDef;
52 |
53 | /**
54 | * @}
55 | */
56 |
57 | /* Exported functions --------------------------------------------------------*/
58 | /** @defgroup DMAEx_Exported_Functions DMAEx Exported Functions
59 | * @brief DMAEx Exported functions
60 | * @{
61 | */
62 |
63 | /** @defgroup DMAEx_Exported_Functions_Group1 Extended features functions
64 | * @brief Extended features functions
65 | * @{
66 | */
67 |
68 | /* IO operation functions *******************************************************/
69 | HAL_StatusTypeDef HAL_DMAEx_MultiBufferStart(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t SecondMemAddress, uint32_t DataLength);
70 | HAL_StatusTypeDef HAL_DMAEx_MultiBufferStart_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t SecondMemAddress, uint32_t DataLength);
71 | HAL_StatusTypeDef HAL_DMAEx_ChangeMemory(DMA_HandleTypeDef *hdma, uint32_t Address, HAL_DMA_MemoryTypeDef memory);
72 |
73 | /**
74 | * @}
75 | */
76 | /**
77 | * @}
78 | */
79 |
80 | /* Private functions ---------------------------------------------------------*/
81 | /** @defgroup DMAEx_Private_Functions DMAEx Private Functions
82 | * @brief DMAEx Private functions
83 | * @{
84 | */
85 | /**
86 | * @}
87 | */
88 |
89 | /**
90 | * @}
91 | */
92 |
93 | /**
94 | * @}
95 | */
96 |
97 | #ifdef __cplusplus
98 | }
99 | #endif
100 |
101 | #endif /*__STM32F4xx_HAL_DMA_EX_H*/
102 |
103 |
--------------------------------------------------------------------------------
/project/stm32f407/hal/inc/stm32f4xx_hal_flash_ramfunc.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f4xx_hal_flash_ramfunc.h
4 | * @author MCD Application Team
5 | * @brief Header file of FLASH RAMFUNC driver.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * Copyright (c) 2017 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software is licensed under terms that can be found in the LICENSE file in
13 | * the root directory of this software component.
14 | * If no LICENSE file comes with this software, it is provided AS-IS.
15 | ******************************************************************************
16 | */
17 |
18 | /* Define to prevent recursive inclusion -------------------------------------*/
19 | #ifndef __STM32F4xx_FLASH_RAMFUNC_H
20 | #define __STM32F4xx_FLASH_RAMFUNC_H
21 |
22 | #ifdef __cplusplus
23 | extern "C" {
24 | #endif
25 | #if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx) || defined(STM32F411xE) || defined(STM32F446xx) || defined(STM32F412Zx) ||\
26 | defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx)
27 |
28 | /* Includes ------------------------------------------------------------------*/
29 | #include "stm32f4xx_hal_def.h"
30 |
31 | /** @addtogroup STM32F4xx_HAL_Driver
32 | * @{
33 | */
34 |
35 | /** @addtogroup FLASH_RAMFUNC
36 | * @{
37 | */
38 |
39 | /* Exported types ------------------------------------------------------------*/
40 | /* Exported macro ------------------------------------------------------------*/
41 | /* Exported functions --------------------------------------------------------*/
42 | /** @addtogroup FLASH_RAMFUNC_Exported_Functions
43 | * @{
44 | */
45 |
46 | /** @addtogroup FLASH_RAMFUNC_Exported_Functions_Group1
47 | * @{
48 | */
49 | __RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_StopFlashInterfaceClk(void);
50 | __RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_StartFlashInterfaceClk(void);
51 | __RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_EnableFlashSleepMode(void);
52 | __RAM_FUNC HAL_StatusTypeDef HAL_FLASHEx_DisableFlashSleepMode(void);
53 | /**
54 | * @}
55 | */
56 |
57 | /**
58 | * @}
59 | */
60 |
61 | /**
62 | * @}
63 | */
64 |
65 | /**
66 | * @}
67 | */
68 |
69 | #endif /* STM32F410xx || STM32F411xE || STM32F446xx || STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx */
70 | #ifdef __cplusplus
71 | }
72 | #endif
73 |
74 |
75 | #endif /* __STM32F4xx_FLASH_RAMFUNC_H */
76 |
77 |
--------------------------------------------------------------------------------
/project/stm32f407/hal/inc/stm32f4xx_hal_i2c_ex.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f4xx_hal_i2c_ex.h
4 | * @author MCD Application Team
5 | * @brief Header file of I2C HAL Extension module.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * Copyright (c) 2016 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software is licensed under terms that can be found in the LICENSE file
13 | * in the root directory of this software component.
14 | * If no LICENSE file comes with this software, it is provided AS-IS.
15 | *
16 | ******************************************************************************
17 | */
18 |
19 | /* Define to prevent recursive inclusion -------------------------------------*/
20 | #ifndef __STM32F4xx_HAL_I2C_EX_H
21 | #define __STM32F4xx_HAL_I2C_EX_H
22 |
23 | #ifdef __cplusplus
24 | extern "C" {
25 | #endif
26 |
27 | #if defined(I2C_FLTR_ANOFF)&&defined(I2C_FLTR_DNF)
28 | /* Includes ------------------------------------------------------------------*/
29 | #include "stm32f4xx_hal_def.h"
30 |
31 | /** @addtogroup STM32F4xx_HAL_Driver
32 | * @{
33 | */
34 |
35 | /** @addtogroup I2CEx
36 | * @{
37 | */
38 |
39 | /* Exported types ------------------------------------------------------------*/
40 | /* Exported constants --------------------------------------------------------*/
41 | /** @defgroup I2CEx_Exported_Constants I2C Exported Constants
42 | * @{
43 | */
44 |
45 | /** @defgroup I2CEx_Analog_Filter I2C Analog Filter
46 | * @{
47 | */
48 | #define I2C_ANALOGFILTER_ENABLE 0x00000000U
49 | #define I2C_ANALOGFILTER_DISABLE I2C_FLTR_ANOFF
50 | /**
51 | * @}
52 | */
53 |
54 | /**
55 | * @}
56 | */
57 |
58 | /* Exported macro ------------------------------------------------------------*/
59 | /* Exported functions --------------------------------------------------------*/
60 | /** @addtogroup I2CEx_Exported_Functions
61 | * @{
62 | */
63 |
64 | /** @addtogroup I2CEx_Exported_Functions_Group1
65 | * @{
66 | */
67 | /* Peripheral Control functions ************************************************/
68 | HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter);
69 | HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter);
70 | /**
71 | * @}
72 | */
73 |
74 | /**
75 | * @}
76 | */
77 | /* Private types -------------------------------------------------------------*/
78 | /* Private variables ---------------------------------------------------------*/
79 | /* Private constants ---------------------------------------------------------*/
80 | /** @defgroup I2CEx_Private_Constants I2C Private Constants
81 | * @{
82 | */
83 |
84 | /**
85 | * @}
86 | */
87 |
88 | /* Private macros ------------------------------------------------------------*/
89 | /** @defgroup I2CEx_Private_Macros I2C Private Macros
90 | * @{
91 | */
92 | #define IS_I2C_ANALOG_FILTER(FILTER) (((FILTER) == I2C_ANALOGFILTER_ENABLE) || \
93 | ((FILTER) == I2C_ANALOGFILTER_DISABLE))
94 | #define IS_I2C_DIGITAL_FILTER(FILTER) ((FILTER) <= 0x0000000FU)
95 | /**
96 | * @}
97 | */
98 |
99 | /**
100 | * @}
101 | */
102 |
103 | /**
104 | * @}
105 | */
106 |
107 | #endif
108 |
109 | #ifdef __cplusplus
110 | }
111 | #endif
112 |
113 | #endif /* __STM32F4xx_HAL_I2C_EX_H */
114 |
115 |
116 |
--------------------------------------------------------------------------------
/project/stm32f407/hal/inc/stm32f4xx_hal_ltdc_ex.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f4xx_hal_ltdc_ex.h
4 | * @author MCD Application Team
5 | * @brief Header file of LTDC HAL Extension module.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * Copyright (c) 2016 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software is licensed under terms that can be found in the LICENSE file
13 | * in the root directory of this software component.
14 | * If no LICENSE file comes with this software, it is provided AS-IS.
15 | *
16 | ******************************************************************************
17 | */
18 |
19 | /* Define to prevent recursive inclusion -------------------------------------*/
20 | #ifndef STM32F4xx_HAL_LTDC_EX_H
21 | #define STM32F4xx_HAL_LTDC_EX_H
22 |
23 | #ifdef __cplusplus
24 | extern "C" {
25 | #endif
26 |
27 | /* Includes ------------------------------------------------------------------*/
28 | #include "stm32f4xx_hal_def.h"
29 |
30 | #if defined (LTDC) && defined (DSI)
31 |
32 | #include "stm32f4xx_hal_dsi.h"
33 |
34 | /** @addtogroup STM32F4xx_HAL_Driver
35 | * @{
36 | */
37 |
38 | /** @addtogroup LTDCEx
39 | * @{
40 | */
41 |
42 | /* Exported types ------------------------------------------------------------*/
43 | /* Exported constants --------------------------------------------------------*/
44 | /* Exported macro ------------------------------------------------------------*/
45 | /* Exported functions --------------------------------------------------------*/
46 | /** @addtogroup LTDCEx_Exported_Functions
47 | * @{
48 | */
49 |
50 | /** @addtogroup LTDCEx_Exported_Functions_Group1
51 | * @{
52 | */
53 | HAL_StatusTypeDef HAL_LTDCEx_StructInitFromVideoConfig(LTDC_HandleTypeDef *hltdc, DSI_VidCfgTypeDef *VidCfg);
54 | HAL_StatusTypeDef HAL_LTDCEx_StructInitFromAdaptedCommandConfig(LTDC_HandleTypeDef *hltdc, DSI_CmdCfgTypeDef *CmdCfg);
55 | /**
56 | * @}
57 | */
58 |
59 | /**
60 | * @}
61 | */
62 |
63 | /* Private types -------------------------------------------------------------*/
64 | /* Private variables ---------------------------------------------------------*/
65 | /* Private constants ---------------------------------------------------------*/
66 | /* Private macros ------------------------------------------------------------*/
67 | /* Private functions ---------------------------------------------------------*/
68 |
69 | /**
70 | * @}
71 | */
72 |
73 | /**
74 | * @}
75 | */
76 |
77 | #endif /* LTDC && DSI */
78 |
79 | #ifdef __cplusplus
80 | }
81 | #endif
82 |
83 | #endif /* STM32F4xx_HAL_LTDC_EX_H */
84 |
--------------------------------------------------------------------------------
/project/stm32f407/hal/inc/stm32f4xx_hal_pcd_ex.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f4xx_hal_pcd_ex.h
4 | * @author MCD Application Team
5 | * @brief Header file of PCD HAL Extension module.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * Copyright (c) 2016 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software is licensed under terms that can be found in the LICENSE file
13 | * in the root directory of this software component.
14 | * If no LICENSE file comes with this software, it is provided AS-IS.
15 | *
16 | ******************************************************************************
17 | */
18 |
19 | /* Define to prevent recursive inclusion -------------------------------------*/
20 | #ifndef STM32F4xx_HAL_PCD_EX_H
21 | #define STM32F4xx_HAL_PCD_EX_H
22 |
23 | #ifdef __cplusplus
24 | extern "C" {
25 | #endif /* __cplusplus */
26 |
27 | /* Includes ------------------------------------------------------------------*/
28 | #include "stm32f4xx_hal_def.h"
29 |
30 | #if defined (USB_OTG_FS) || defined (USB_OTG_HS)
31 | /** @addtogroup STM32F4xx_HAL_Driver
32 | * @{
33 | */
34 |
35 | /** @addtogroup PCDEx
36 | * @{
37 | */
38 | /* Exported types ------------------------------------------------------------*/
39 | /* Exported constants --------------------------------------------------------*/
40 | /* Exported macros -----------------------------------------------------------*/
41 | /* Exported functions --------------------------------------------------------*/
42 | /** @addtogroup PCDEx_Exported_Functions PCDEx Exported Functions
43 | * @{
44 | */
45 | /** @addtogroup PCDEx_Exported_Functions_Group1 Peripheral Control functions
46 | * @{
47 | */
48 |
49 | #if defined (USB_OTG_FS) || defined (USB_OTG_HS)
50 | HAL_StatusTypeDef HAL_PCDEx_SetTxFiFo(PCD_HandleTypeDef *hpcd, uint8_t fifo, uint16_t size);
51 | HAL_StatusTypeDef HAL_PCDEx_SetRxFiFo(PCD_HandleTypeDef *hpcd, uint16_t size);
52 | #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
53 |
54 | #if defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
55 | HAL_StatusTypeDef HAL_PCDEx_ActivateLPM(PCD_HandleTypeDef *hpcd);
56 | HAL_StatusTypeDef HAL_PCDEx_DeActivateLPM(PCD_HandleTypeDef *hpcd);
57 | #endif /* defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx) */
58 | #if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
59 | HAL_StatusTypeDef HAL_PCDEx_ActivateBCD(PCD_HandleTypeDef *hpcd);
60 | HAL_StatusTypeDef HAL_PCDEx_DeActivateBCD(PCD_HandleTypeDef *hpcd);
61 | void HAL_PCDEx_BCD_VBUSDetect(PCD_HandleTypeDef *hpcd);
62 | #endif /* defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx) */
63 | void HAL_PCDEx_LPM_Callback(PCD_HandleTypeDef *hpcd, PCD_LPM_MsgTypeDef msg);
64 | void HAL_PCDEx_BCD_Callback(PCD_HandleTypeDef *hpcd, PCD_BCD_MsgTypeDef msg);
65 |
66 | /**
67 | * @}
68 | */
69 |
70 | /**
71 | * @}
72 | */
73 |
74 | /**
75 | * @}
76 | */
77 |
78 | /**
79 | * @}
80 | */
81 | #endif /* defined (USB_OTG_FS) || defined (USB_OTG_HS) */
82 |
83 | #ifdef __cplusplus
84 | }
85 | #endif /* __cplusplus */
86 |
87 |
88 | #endif /* STM32F4xx_HAL_PCD_EX_H */
89 |
--------------------------------------------------------------------------------
/project/stm32f407/hal/src/stm32f4xx_hal_msp_template.c:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f4xx_hal_msp_template.c
4 | * @author MCD Application Team
5 | * @brief This file contains the HAL System and Peripheral (PPP) MSP initialization
6 | * and de-initialization functions.
7 | * It should be copied to the application folder and renamed into 'stm32f4xx_hal_msp.c'.
8 | ******************************************************************************
9 | * @attention
10 | *
11 | * Copyright (c) 2017 STMicroelectronics.
12 | * All rights reserved.
13 | *
14 | * This software is licensed under terms that can be found in the LICENSE file
15 | * in the root directory of this software component.
16 | * If no LICENSE file comes with this software, it is provided AS-IS.
17 | *
18 | ******************************************************************************
19 | */
20 |
21 | /* Includes ------------------------------------------------------------------*/
22 | #include "stm32f4xx_hal.h"
23 |
24 | /** @addtogroup STM32F4xx_HAL_Driver
25 | * @{
26 | */
27 |
28 | /** @defgroup HAL_MSP HAL MSP
29 | * @brief HAL MSP module.
30 | * @{
31 | */
32 |
33 | /* Private typedef -----------------------------------------------------------*/
34 | /* Private define ------------------------------------------------------------*/
35 | /* Private macro -------------------------------------------------------------*/
36 | /* Private variables ---------------------------------------------------------*/
37 | /* Private function prototypes -----------------------------------------------*/
38 | /* Private functions ---------------------------------------------------------*/
39 |
40 | /** @defgroup HAL_MSP_Private_Functions HAL MSP Private Functions
41 | * @{
42 | */
43 |
44 | /**
45 | * @brief Initializes the Global MSP.
46 | * @note This function is called from HAL_Init() function to perform system
47 | * level initialization (GPIOs, clock, DMA, interrupt).
48 | * @retval None
49 | */
50 | void HAL_MspInit(void)
51 | {
52 |
53 | }
54 |
55 | /**
56 | * @brief DeInitializes the Global MSP.
57 | * @note This functiona is called from HAL_DeInit() function to perform system
58 | * level de-initialization (GPIOs, clock, DMA, interrupt).
59 | * @retval None
60 | */
61 | void HAL_MspDeInit(void)
62 | {
63 |
64 | }
65 |
66 | /**
67 | * @brief Initializes the PPP MSP.
68 | * @note This functiona is called from HAL_PPP_Init() function to perform
69 | * peripheral(PPP) system level initialization (GPIOs, clock, DMA, interrupt)
70 | * @retval None
71 | */
72 | void HAL_PPP_MspInit(void)
73 | {
74 |
75 | }
76 |
77 | /**
78 | * @brief DeInitializes the PPP MSP.
79 | * @note This functiona is called from HAL_PPP_DeInit() function to perform
80 | * peripheral(PPP) system level de-initialization (GPIOs, clock, DMA, interrupt)
81 | * @retval None
82 | */
83 | void HAL_PPP_MspDeInit(void)
84 | {
85 |
86 | }
87 |
88 | /**
89 | * @}
90 | */
91 |
92 | /**
93 | * @}
94 | */
95 |
96 | /**
97 | * @}
98 | */
99 |
100 |
101 |
--------------------------------------------------------------------------------
/project/stm32f407/hal/src/stm32f4xx_hal_timebase_rtc_alarm_template.c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libdriver/mifare_ultralight/451c37ccd2cae6ebba3314391cb1013af7713a27/project/stm32f407/hal/src/stm32f4xx_hal_timebase_rtc_alarm_template.c
--------------------------------------------------------------------------------
/project/stm32f407/hal/src/stm32f4xx_hal_timebase_rtc_wakeup_template.c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libdriver/mifare_ultralight/451c37ccd2cae6ebba3314391cb1013af7713a27/project/stm32f407/hal/src/stm32f4xx_hal_timebase_rtc_wakeup_template.c
--------------------------------------------------------------------------------
/project/stm32f407/hal/src/stm32f4xx_ll_crc.c:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f4xx_ll_crc.c
4 | * @author MCD Application Team
5 | * @brief CRC LL module driver.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * Copyright (c) 2016 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software is licensed under terms that can be found in the LICENSE file
13 | * in the root directory of this software component.
14 | * If no LICENSE file comes with this software, it is provided AS-IS.
15 | *
16 | ******************************************************************************
17 | */
18 | #if defined(USE_FULL_LL_DRIVER)
19 |
20 | /* Includes ------------------------------------------------------------------*/
21 | #include "stm32f4xx_ll_crc.h"
22 | #include "stm32f4xx_ll_bus.h"
23 |
24 | #ifdef USE_FULL_ASSERT
25 | #include "stm32_assert.h"
26 | #else
27 | #define assert_param(expr) ((void)0U)
28 | #endif /* USE_FULL_ASSERT */
29 |
30 | /** @addtogroup STM32F4xx_LL_Driver
31 | * @{
32 | */
33 |
34 | #if defined (CRC)
35 |
36 | /** @addtogroup CRC_LL
37 | * @{
38 | */
39 |
40 | /* Private types -------------------------------------------------------------*/
41 | /* Private variables ---------------------------------------------------------*/
42 | /* Private constants ---------------------------------------------------------*/
43 | /* Private macros ------------------------------------------------------------*/
44 | /* Private function prototypes -----------------------------------------------*/
45 |
46 | /* Exported functions --------------------------------------------------------*/
47 | /** @addtogroup CRC_LL_Exported_Functions
48 | * @{
49 | */
50 |
51 | /** @addtogroup CRC_LL_EF_Init
52 | * @{
53 | */
54 |
55 | /**
56 | * @brief De-initialize CRC registers (Registers restored to their default values).
57 | * @param CRCx CRC Instance
58 | * @retval An ErrorStatus enumeration value:
59 | * - SUCCESS: CRC registers are de-initialized
60 | * - ERROR: CRC registers are not de-initialized
61 | */
62 | ErrorStatus LL_CRC_DeInit(CRC_TypeDef *CRCx)
63 | {
64 | ErrorStatus status = SUCCESS;
65 |
66 | /* Check the parameters */
67 | assert_param(IS_CRC_ALL_INSTANCE(CRCx));
68 |
69 | if (CRCx == CRC)
70 | {
71 | /* Force CRC reset */
72 | LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_CRC);
73 |
74 | /* Release CRC reset */
75 | LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_CRC);
76 | }
77 | else
78 | {
79 | status = ERROR;
80 | }
81 |
82 | return (status);
83 | }
84 |
85 | /**
86 | * @}
87 | */
88 |
89 | /**
90 | * @}
91 | */
92 |
93 | /**
94 | * @}
95 | */
96 |
97 | #endif /* defined (CRC) */
98 |
99 | /**
100 | * @}
101 | */
102 |
103 | #endif /* USE_FULL_LL_DRIVER */
104 |
--------------------------------------------------------------------------------
/project/stm32f407/hal/src/stm32f4xx_ll_pwr.c:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f4xx_ll_pwr.c
4 | * @author MCD Application Team
5 | * @brief PWR LL module driver.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * Copyright (c) 2017 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software is licensed under terms that can be found in the LICENSE file in
13 | * the root directory of this software component.
14 | * If no LICENSE file comes with this software, it is provided AS-IS.
15 | ******************************************************************************
16 | */
17 | #if defined(USE_FULL_LL_DRIVER)
18 |
19 | /* Includes ------------------------------------------------------------------*/
20 | #include "stm32f4xx_ll_pwr.h"
21 | #include "stm32f4xx_ll_bus.h"
22 |
23 | /** @addtogroup STM32F4xx_LL_Driver
24 | * @{
25 | */
26 |
27 | #if defined(PWR)
28 |
29 | /** @defgroup PWR_LL PWR
30 | * @{
31 | */
32 |
33 | /* Private types -------------------------------------------------------------*/
34 | /* Private variables ---------------------------------------------------------*/
35 | /* Private constants ---------------------------------------------------------*/
36 | /* Private macros ------------------------------------------------------------*/
37 | /* Private function prototypes -----------------------------------------------*/
38 |
39 | /* Exported functions --------------------------------------------------------*/
40 | /** @addtogroup PWR_LL_Exported_Functions
41 | * @{
42 | */
43 |
44 | /** @addtogroup PWR_LL_EF_Init
45 | * @{
46 | */
47 |
48 | /**
49 | * @brief De-initialize the PWR registers to their default reset values.
50 | * @retval An ErrorStatus enumeration value:
51 | * - SUCCESS: PWR registers are de-initialized
52 | * - ERROR: not applicable
53 | */
54 | ErrorStatus LL_PWR_DeInit(void)
55 | {
56 | /* Force reset of PWR clock */
57 | LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_PWR);
58 |
59 | /* Release reset of PWR clock */
60 | LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_PWR);
61 |
62 | return SUCCESS;
63 | }
64 |
65 | /**
66 | * @}
67 | */
68 |
69 | /**
70 | * @}
71 | */
72 |
73 | /**
74 | * @}
75 | */
76 | #endif /* defined(PWR) */
77 | /**
78 | * @}
79 | */
80 |
81 | #endif /* USE_FULL_LL_DRIVER */
82 |
--------------------------------------------------------------------------------
/project/stm32f407/hal/src/stm32f4xx_ll_rng.c:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file stm32f4xx_ll_rng.c
4 | * @author MCD Application Team
5 | * @brief RNG LL module driver.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * Copyright (c) 2016 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software is licensed under terms that can be found in the LICENSE file
13 | * in the root directory of this software component.
14 | * If no LICENSE file comes with this software, it is provided AS-IS.
15 | *
16 | ******************************************************************************
17 | */
18 | #if defined(USE_FULL_LL_DRIVER)
19 |
20 | /* Includes ------------------------------------------------------------------*/
21 | #include "stm32f4xx_ll_rng.h"
22 | #include "stm32f4xx_ll_bus.h"
23 |
24 | #ifdef USE_FULL_ASSERT
25 | #include "stm32_assert.h"
26 | #else
27 | #define assert_param(expr) ((void)0U)
28 | #endif /* USE_FULL_ASSERT */
29 |
30 | /** @addtogroup STM32F4xx_LL_Driver
31 | * @{
32 | */
33 |
34 | #if defined (RNG)
35 |
36 | /** @addtogroup RNG_LL
37 | * @{
38 | */
39 |
40 | /* Private types -------------------------------------------------------------*/
41 | /* Private variables ---------------------------------------------------------*/
42 | /* Private constants ---------------------------------------------------------*/
43 | /* Private macros ------------------------------------------------------------*/
44 | /* Private function prototypes -----------------------------------------------*/
45 |
46 | /* Exported functions --------------------------------------------------------*/
47 | /** @addtogroup RNG_LL_Exported_Functions
48 | * @{
49 | */
50 |
51 | /** @addtogroup RNG_LL_EF_Init
52 | * @{
53 | */
54 |
55 | /**
56 | * @brief De-initialize RNG registers (Registers restored to their default values).
57 | * @param RNGx RNG Instance
58 | * @retval An ErrorStatus enumeration value:
59 | * - SUCCESS: RNG registers are de-initialized
60 | * - ERROR: not applicable
61 | */
62 | ErrorStatus LL_RNG_DeInit(RNG_TypeDef *RNGx)
63 | {
64 | ErrorStatus status = SUCCESS;
65 |
66 | /* Check the parameters */
67 | assert_param(IS_RNG_ALL_INSTANCE(RNGx));
68 | if (RNGx == RNG)
69 | {
70 | #if !defined(RCC_AHB2_SUPPORT)
71 | /* Enable RNG reset state */
72 | LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_RNG);
73 |
74 | /* Release RNG from reset state */
75 | LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_RNG);
76 | #else
77 | /* Enable RNG reset state */
78 | LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_RNG);
79 |
80 | /* Release RNG from reset state */
81 | LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_RNG);
82 | #endif /* !RCC_AHB2_SUPPORT */
83 | }
84 | else
85 | {
86 | status = ERROR;
87 | }
88 |
89 | return status;
90 | }
91 |
92 | /**
93 | * @}
94 | */
95 |
96 | /**
97 | * @}
98 | */
99 |
100 | /**
101 | * @}
102 | */
103 |
104 | #endif /* RNG */
105 |
106 | /**
107 | * @}
108 | */
109 |
110 | #endif /* USE_FULL_LL_DRIVER */
111 |
112 |
--------------------------------------------------------------------------------
/project/stm32f407/interface/inc/clock.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015 - present LibDriver All rights reserved
3 | *
4 | * The MIT License (MIT)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | * @file clock.h
25 | * @brief clock header file
26 | * @version 1.0.0
27 | * @author Shifeng Li
28 | * @date 2022-11-11
29 | *
30 | *
history
31 | *
32 | *
Date
Version
Author
Description
33 | *
2022/11/11
1.0
Shifeng Li
first upload
34 | *
35 | */
36 |
37 | #ifndef CLOCK_H
38 | #define CLOCK_H
39 |
40 | #include "stm32f4xx_hal.h"
41 |
42 | #ifdef __cplusplus
43 | extern "C"{
44 | #endif
45 |
46 | /**
47 | * @defgroup clock clock function
48 | * @brief clock function modules
49 | * @{
50 | */
51 |
52 | /**
53 | * @brief chip clock init
54 | * @note none
55 | */
56 | void clock_init(void);
57 |
58 | /**
59 | * @}
60 | */
61 |
62 | #ifdef __cplusplus
63 | }
64 | #endif
65 |
66 | #endif
67 |
--------------------------------------------------------------------------------
/project/stm32f407/interface/inc/delay.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015 - present LibDriver All rights reserved
3 | *
4 | * The MIT License (MIT)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | * @file delay.h
25 | * @brief delay header file
26 | * @version 1.0.0
27 | * @author Shifeng Li
28 | * @date 2022-11-11
29 | *
30 | *
history
31 | *
32 | *
Date
Version
Author
Description
33 | *
2022/11/11
1.0
Shifeng Li
first upload
34 | *
35 | */
36 |
37 | #ifndef DELAY_H
38 | #define DELAY_H
39 |
40 | #include "stm32f4xx_hal.h"
41 |
42 | #ifdef __cplusplus
43 | extern "C"{
44 | #endif
45 |
46 | /**
47 | * @defgroup delay delay function
48 | * @brief delay function modules
49 | * @{
50 | */
51 |
52 | /**
53 | * @brief delay clock init
54 | * @return status code
55 | * - 0 success
56 | * @note none
57 | */
58 | uint8_t delay_init(void);
59 |
60 | /**
61 | * @brief delay us
62 | * @param[in] us time
63 | * @note none
64 | */
65 | void delay_us(uint32_t us);
66 |
67 | /**
68 | * @brief delay ms
69 | * @param[in] ms time
70 | * @note none
71 | */
72 | void delay_ms(uint32_t ms);
73 |
74 | /**
75 | * @}
76 | */
77 |
78 | #ifdef __cplusplus
79 | }
80 | #endif
81 |
82 | #endif
83 |
--------------------------------------------------------------------------------
/project/stm32f407/interface/inc/gpio.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015 - present LibDriver All rights reserved
3 | *
4 | * The MIT License (MIT)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | * @file gpio.h
25 | * @brief gpio header file
26 | * @version 1.0.0
27 | * @author Shifeng Li
28 | * @date 2022-11-11
29 | *
30 | *
history
31 | *
32 | *
Date
Version
Author
Description
33 | *
2022/11/11
1.0
Shifeng Li
first upload
34 | *
35 | */
36 |
37 | #ifndef GPIO_H
38 | #define GPIO_H
39 |
40 | #include "stm32f4xx_hal.h"
41 |
42 | #ifdef __cplusplus
43 | extern "C" {
44 | #endif
45 |
46 | /**
47 | * @defgroup gpio gpio function
48 | * @brief gpio function modules
49 | * @{
50 | */
51 |
52 | /**
53 | * @brief gpio interrupt init
54 | * @return status code
55 | * - 0 success
56 | * @note gpio pin is PB0
57 | */
58 | uint8_t gpio_interrupt_init(void);
59 |
60 | /**
61 | * @brief gpio interrupt deinit
62 | * @return status code
63 | * - 0 success
64 | * @note none
65 | */
66 | uint8_t gpio_interrupt_deinit(void);
67 |
68 | /**
69 | * @}
70 | */
71 |
72 | #ifdef __cplusplus
73 | }
74 | #endif
75 |
76 | #endif
77 |
--------------------------------------------------------------------------------
/project/stm32f407/interface/inc/wire.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015 - present LibDriver All rights reserved
3 | *
4 | * The MIT License (MIT)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | * @file wire.h
25 | * @brief wire header file
26 | * @version 1.0.0
27 | * @author Shifeng Li
28 | * @date 2022-11-11
29 | *
30 | *
history
31 | *
32 | *
Date
Version
Author
Description
33 | *
2022/11/11
1.0
Shifeng Li
first upload
34 | *
35 | */
36 |
37 | #ifndef WIRE_H
38 | #define WIRE_H
39 |
40 | #include "stm32f4xx_hal.h"
41 |
42 | #ifdef __cplusplus
43 | extern "C" {
44 | #endif
45 |
46 | /**
47 | * @defgroup wire wire function
48 | * @brief wire function modules
49 | * @{
50 | */
51 |
52 | /**
53 | * @brief wire bus init
54 | * @return status code
55 | * - 0 success
56 | * @note IO is PA8
57 | */
58 | uint8_t wire_init(void);
59 |
60 | /**
61 | * @brief wire bus deint
62 | * @return status code
63 | * - 0 success
64 | * @note none
65 | */
66 | uint8_t wire_deinit(void);
67 |
68 | /**
69 | * @brief wire bus read data
70 | * @param[out] *value pointer to a read data buffer
71 | * @return status code
72 | * - 0 success
73 | * @note none
74 | */
75 | uint8_t wire_read(uint8_t *value);
76 |
77 | /**
78 | * @brief wire bus write data
79 | * @param[in] value write data
80 | * @return status code
81 | * - 0 success
82 | * @note none
83 | */
84 | uint8_t wire_write(uint8_t value);
85 |
86 | /**
87 | * @brief wire bus init
88 | * @return status code
89 | * - 0 success
90 | * @note IO is PA0
91 | */
92 | uint8_t wire_clock_init(void);
93 |
94 | /**
95 | * @brief wire bus deint
96 | * @return status code
97 | * - 0 success
98 | * @note none
99 | */
100 | uint8_t wire_clock_deinit(void);
101 |
102 | /**
103 | * @brief wire bus write the data
104 | * @param[in] value write data
105 | * @return status code
106 | * - 0 success
107 | * @note none
108 | */
109 | uint8_t wire_clock_write(uint8_t value);
110 |
111 | /**
112 | * @}
113 | */
114 |
115 | #ifdef __cplusplus
116 | }
117 | #endif
118 |
119 | #endif
120 |
--------------------------------------------------------------------------------
/project/stm32f407/interface/src/clock.c:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015 - present LibDriver All rights reserved
3 | *
4 | * The MIT License (MIT)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | * @file clock.c
25 | * @brief clock source file
26 | * @version 1.0.0
27 | * @author Shifeng Li
28 | * @date 2022-11-11
29 | *
30 | *
history
31 | *
32 | *
Date
Version
Author
Description
33 | *
2022/11/11
1.0
Shifeng Li
first upload
34 | *
35 | */
36 |
37 | #include "clock.h"
38 |
39 | /**
40 | * @brief chip clock init
41 | * @note none
42 | */
43 | void clock_init(void)
44 | {
45 | RCC_OscInitTypeDef RCC_OscInitStructure;
46 | RCC_ClkInitTypeDef RCC_ClkInitStructure;
47 | HAL_StatusTypeDef ret;
48 |
49 | /* enable power clock */
50 | __HAL_RCC_PWR_CLK_ENABLE();
51 | __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
52 |
53 | /* use HSE */
54 | RCC_OscInitStructure.OscillatorType = RCC_OSCILLATORTYPE_HSE;
55 | RCC_OscInitStructure.HSEState = RCC_HSE_ON;
56 | RCC_OscInitStructure.PLL.PLLState = RCC_PLL_ON;
57 | RCC_OscInitStructure.PLL.PLLSource = RCC_PLLSOURCE_HSE;
58 | RCC_OscInitStructure.PLL.PLLM = 8;
59 | RCC_OscInitStructure.PLL.PLLN = 336;
60 | RCC_OscInitStructure.PLL.PLLP = 2;
61 | RCC_OscInitStructure.PLL.PLLQ = 7;
62 | ret = HAL_RCC_OscConfig(&RCC_OscInitStructure);
63 | if (ret != HAL_OK)
64 | {
65 | while(1);
66 | }
67 |
68 | /* config clock */
69 | RCC_ClkInitStructure.ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
70 | RCC_ClkInitStructure.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
71 | RCC_ClkInitStructure.AHBCLKDivider = RCC_SYSCLK_DIV1;
72 | RCC_ClkInitStructure.APB1CLKDivider = RCC_HCLK_DIV4;
73 | RCC_ClkInitStructure.APB2CLKDivider = RCC_HCLK_DIV2;
74 | ret = HAL_RCC_ClockConfig(&RCC_ClkInitStructure, FLASH_LATENCY_5);
75 | if (ret != HAL_OK)
76 | {
77 | while(1);
78 | }
79 |
80 | /* check the id and enable flash prefetch buffer */
81 | if (HAL_GetREVID() == 0x1001)
82 | {
83 | __HAL_FLASH_PREFETCH_BUFFER_ENABLE();
84 | }
85 |
86 | /* hal init */
87 | ret = HAL_Init();
88 | if (ret != HAL_OK)
89 | {
90 | while(1);
91 | }
92 | }
93 |
--------------------------------------------------------------------------------
/project/stm32f407/interface/src/delay.c:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015 - present LibDriver All rights reserved
3 | *
4 | * The MIT License (MIT)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | * @file delay.c
25 | * @brief delay source file
26 | * @version 1.0.0
27 | * @author Shifeng Li
28 | * @date 2022-11-11
29 | *
30 | *
history
31 | *
32 | *
Date
Version
Author
Description
33 | *
2022/11/11
1.0
Shifeng Li
first upload
34 | *
35 | */
36 |
37 | #include "delay.h"
38 |
39 | static volatile uint32_t gs_fac_us = 0; /**< fac cnt */
40 |
41 | /**
42 | * @brief delay clock init
43 | * @return status code
44 | * - 0 success
45 | * @note none
46 | */
47 | uint8_t delay_init(void)
48 | {
49 | /* usr HCLK */
50 | HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
51 |
52 | /* set fac */
53 | gs_fac_us = 168;
54 |
55 | return 0;
56 | }
57 |
58 | /**
59 | * @brief delay us
60 | * @param[in] us time
61 | * @note none
62 | */
63 | void delay_us(uint32_t us)
64 | {
65 | uint32_t ticks;
66 | uint32_t told;
67 | uint32_t tnow;
68 | uint32_t tcnt;
69 | uint32_t reload;
70 |
71 | /* set the used param */
72 | tcnt = 0;
73 | reload = SysTick->LOAD;
74 | ticks = us * gs_fac_us;
75 | told = SysTick->VAL;
76 |
77 | /* delay */
78 | while (1)
79 | {
80 | tnow = SysTick->VAL;
81 | if (tnow != told)
82 | {
83 | if (tnow < told)
84 | {
85 | tcnt += told - tnow;
86 | }
87 | else
88 | {
89 | tcnt += reload - tnow + told;
90 | }
91 | told = tnow;
92 | if (tcnt >= ticks)
93 | {
94 | break;
95 | }
96 | }
97 | }
98 | }
99 |
100 | /**
101 | * @brief delay ms
102 | * @param[in] ms time
103 | * @note none
104 | */
105 | void delay_ms(uint32_t ms)
106 | {
107 | /* use the hal delay */
108 | HAL_Delay(ms);
109 | }
110 |
--------------------------------------------------------------------------------
/project/stm32f407/interface/src/gpio.c:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015 - present LibDriver All rights reserved
3 | *
4 | * The MIT License (MIT)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | * @file gpio.c
25 | * @brief gpio source file
26 | * @version 1.0.0
27 | * @author Shifeng Li
28 | * @date 2022-11-11
29 | *
30 | *
history
31 | *
32 | *
Date
Version
Author
Description
33 | *
2022/11/11
1.0
Shifeng Li
first upload
34 | *
35 | */
36 |
37 | #include "gpio.h"
38 |
39 | /**
40 | * @brief gpio interrupt init
41 | * @return status code
42 | * - 0 success
43 | * @note gpio pin is PB0
44 | */
45 | uint8_t gpio_interrupt_init(void)
46 | {
47 | GPIO_InitTypeDef GPIO_InitStruct;
48 |
49 | /* enable gpio clock */
50 | __HAL_RCC_GPIOB_CLK_ENABLE();
51 |
52 | /* gpio init */
53 | GPIO_InitStruct.Pin = GPIO_PIN_0;
54 | GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
55 | GPIO_InitStruct.Pull = GPIO_PULLUP;
56 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
57 | HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
58 |
59 | /* enable nvic */
60 | HAL_NVIC_SetPriority(EXTI0_IRQn, 3, 0);
61 | HAL_NVIC_EnableIRQ(EXTI0_IRQn);
62 |
63 | return 0;
64 | }
65 |
66 | /**
67 | * @brief gpio interrupt deinit
68 | * @return status code
69 | * - 0 success
70 | * @note none
71 | */
72 | uint8_t gpio_interrupt_deinit(void)
73 | {
74 | /* gpio deinit */
75 | HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0);
76 |
77 | /* disable nvic */
78 | HAL_NVIC_DisableIRQ(EXTI0_IRQn);
79 |
80 | return 0;
81 | }
82 |
--------------------------------------------------------------------------------
/project/stm32f407/output/mdk/obj_delete.bat:
--------------------------------------------------------------------------------
1 | del *.bak /s
2 | del *.ddk /s
3 | del *.edk /s
4 | del *.lst /s
5 | del *.lnp /s
6 | del *.mpf /s
7 | del *.mpj /s
8 | del *.obj /s
9 | del *.omf /s
10 | ::del *.opt /s
11 | del *.plg /s
12 | del *.rpt /s
13 | del *.tmp /s
14 | del *.__i /s
15 | del *.crf /s
16 | del *.o /s
17 | del *.d /s
18 | del *.axf /s
19 | del *.tra /s
20 | del *.dep /s
21 | del *.iex /s
22 | del *.htm /s
23 | del *.sct /s
24 | del *.map /s
25 | exit
26 |
--------------------------------------------------------------------------------
/project/stm32f407/usr/inc/stm32f4xx_it.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015 - present LibDriver All rights reserved
3 | *
4 | * The MIT License (MIT)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | * @file stm32f4xx_it.h
25 | * @brief stm32f4xx it header file
26 | * @version 1.0.0
27 | * @author Shifeng Li
28 | * @date 2022-11-11
29 | *
30 | *
history
31 | *
32 | *
Date
Version
Author
Description
33 | *
2022/11/11
1.0
Shifeng Li
first upload
34 | *
35 | */
36 |
37 | #ifndef STM32F4XX_IT_H
38 | #define STM32F4XX_IT_H
39 |
40 | #include "stm32f4xx_hal.h"
41 |
42 | #ifdef __cplusplus
43 | extern "C" {
44 | #endif
45 |
46 | /**
47 | * @defgroup IT HAL_IT_Private_Functions
48 | * @{
49 | */
50 |
51 | /**
52 | * @brief nmi handler
53 | * @note none
54 | */
55 | void NMI_Handler(void);
56 |
57 | /**
58 | * @brief hardfault handler
59 | * @note none
60 | */
61 | void HardFault_Handler(void);
62 |
63 | /**
64 | * @brief memory manage handler
65 | * @note none
66 | */
67 | void MemManage_Handler(void);
68 |
69 | /**
70 | * @brief bus fault handler
71 | * @note none
72 | */
73 | void BusFault_Handler(void);
74 |
75 | /**
76 | * @brief usage fault handler
77 | * @note none
78 | */
79 | void UsageFault_Handler(void);
80 |
81 | /**
82 | * @brief svc handler
83 | * @note none
84 | */
85 | void SVC_Handler(void);
86 |
87 | /**
88 | * @brief debug handler
89 | * @note none
90 | */
91 | void DebugMon_Handler(void);
92 |
93 | /**
94 | * @brief pendsv handler
95 | * @note none
96 | */
97 | void PendSV_Handler(void);
98 |
99 | /**
100 | * @brief systick handler
101 | * @note none
102 | */
103 | void SysTick_Handler(void);
104 |
105 | /**
106 | * @brief usart1 irq handler
107 | * @note none
108 | */
109 | void USART1_IRQHandler(void);
110 |
111 | /**
112 | * @brief usart2 irq handler
113 | * @note none
114 | */
115 | void USART2_IRQHandler(void);
116 |
117 | /**
118 | * @}
119 | */
120 |
121 | #ifdef __cplusplus
122 | }
123 | #endif
124 |
125 | #endif
126 |
--------------------------------------------------------------------------------
/project/stm32f407/usr/inc/system_stm32f4xx.h:
--------------------------------------------------------------------------------
1 | /**
2 | ******************************************************************************
3 | * @file system_stm32f4xx.h
4 | * @author MCD Application Team
5 | * @brief CMSIS Cortex-M4 Device System Source File for STM32F4xx devices.
6 | ******************************************************************************
7 | * @attention
8 | *
9 | * Copyright (c) 2017 STMicroelectronics.
10 | * All rights reserved.
11 | *
12 | * This software is licensed under terms that can be found in the LICENSE file
13 | * in the root directory of this software component.
14 | * If no LICENSE file comes with this software, it is provided AS-IS.
15 | *
16 | ******************************************************************************
17 | */
18 |
19 | /** @addtogroup CMSIS
20 | * @{
21 | */
22 |
23 | /** @addtogroup stm32f4xx_system
24 | * @{
25 | */
26 |
27 | /**
28 | * @brief Define to prevent recursive inclusion
29 | */
30 | #ifndef __SYSTEM_STM32F4XX_H
31 | #define __SYSTEM_STM32F4XX_H
32 |
33 | #ifdef __cplusplus
34 | extern "C" {
35 | #endif
36 |
37 | /** @addtogroup STM32F4xx_System_Includes
38 | * @{
39 | */
40 |
41 | /**
42 | * @}
43 | */
44 |
45 |
46 | /** @addtogroup STM32F4xx_System_Exported_types
47 | * @{
48 | */
49 | /* This variable is updated in three ways:
50 | 1) by calling CMSIS function SystemCoreClockUpdate()
51 | 2) by calling HAL API function HAL_RCC_GetSysClockFreq()
52 | 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency
53 | Note: If you use this function to configure the system clock; then there
54 | is no need to call the 2 first functions listed above, since SystemCoreClock
55 | variable is updated automatically.
56 | */
57 | extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */
58 |
59 | extern const uint8_t AHBPrescTable[16]; /*!< AHB prescalers table values */
60 | extern const uint8_t APBPrescTable[8]; /*!< APB prescalers table values */
61 |
62 | /**
63 | * @}
64 | */
65 |
66 | /** @addtogroup STM32F4xx_System_Exported_Constants
67 | * @{
68 | */
69 |
70 | /**
71 | * @}
72 | */
73 |
74 | /** @addtogroup STM32F4xx_System_Exported_Macros
75 | * @{
76 | */
77 |
78 | /**
79 | * @}
80 | */
81 |
82 | /** @addtogroup STM32F4xx_System_Exported_Functions
83 | * @{
84 | */
85 |
86 | extern void SystemInit(void);
87 | extern void SystemCoreClockUpdate(void);
88 | /**
89 | * @}
90 | */
91 |
92 | #ifdef __cplusplus
93 | }
94 | #endif
95 |
96 | #endif /*__SYSTEM_STM32F4XX_H */
97 |
98 | /**
99 | * @}
100 | */
101 |
102 | /**
103 | * @}
104 | */
105 |
--------------------------------------------------------------------------------
/test/driver_mifare_ultralight_card_test.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2015 - present LibDriver All rights reserved
3 | *
4 | * The MIT License (MIT)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | * @file driver_mifare_ultralight_card_test.h
25 | * @brief driver mifare_ultralight card test header file
26 | * @version 1.0.0
27 | * @author Shifeng Li
28 | * @date 2022-06-30
29 | *
30 | *