From 753c65e1f95c543653ce53918aad125c2532faca Mon Sep 17 00:00:00 2001 From: arao Date: Tue, 28 May 2019 02:52:17 +0900 Subject: [PATCH] Code for #2 --- .../NFC/stm32/Dynamic_NFC/.mxproject | 17 ++- .../NFC/stm32/Dynamic_NFC/Dynamic_NFC.ioc | 5 +- .../NFC/stm32/Dynamic_NFC/Inc/rn4020.h | 18 +++ .../stm32/Dynamic_NFC/Src/app_x-cube-nfc4.c | 4 +- .../NFC/stm32/Dynamic_NFC/Src/main.c | 16 ++- .../NFC/stm32/Dynamic_NFC/Src/rn4020.c | 70 ++++++++++ .../NFC/stm32/Dynamic_NFC/mx.scratch | 127 ++++++++++++++++++ 7 files changed, 242 insertions(+), 15 deletions(-) create mode 100644 NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Inc/rn4020.h create mode 100644 NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Src/rn4020.c create mode 100644 NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/mx.scratch diff --git a/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/.mxproject b/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/.mxproject index 8ab2747..c04e94f 100644 --- a/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/.mxproject +++ b/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/.mxproject @@ -1,12 +1,17 @@ [PreviousGenFiles] -HeaderPath=C:/Users/shiny/Documents/GitHub/dynamic-nfc/stm32/Dynamic_NFC/Inc +HeaderPath=C:/Users/shiny/Documents/GitHub/stm32-mcu/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Inc HeaderFiles=gpio.h;app_x-cube-nfc4.h;nfc04a1_conf.h;common.h;usart.h;stm32f4xx_nucleo_bus.h;stm32f4xx_nucleo_errno.h;stm32f4xx_nucleo_conf.h;stm32f4xx_it.h;RTE_Components.h;stm32f4xx_hal_conf.h;main.h; -SourcePath=C:/Users/shiny/Documents/GitHub/dynamic-nfc/stm32/Dynamic_NFC/Src +SourcePath=C:/Users/shiny/Documents/GitHub/stm32-mcu/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Src SourceFiles=gpio.c;app_x-cube-nfc4.c;lib_NDEF_config.c;usart.c;stm32f4xx_nucleo_bus.c;stm32f4xx_it.c;stm32f4xx_hal_msp.c;main.c; [PreviousLibFiles] LibFiles=Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_i2c_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/tz_context.h; +[PreviousUsedTStudioFiles] +SourceFiles=..\Src\main.c;..\Src\gpio.c;..\Src\app_x-cube-nfc4.c;..\Src\lib_NDEF_config.c;..\Src\usart.c;..\Src\stm32f4xx_nucleo_bus.c;..\Src\stm32f4xx_it.c;..\Src\stm32f4xx_hal_msp.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;../\Src/system_stm32f4xx.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;../\Src/system_stm32f4xx.c;../Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;null; +HeaderPath=..\Drivers\STM32F4xx_HAL_Driver\Inc;..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F4xx\Include;..\Drivers\CMSIS\Include;..\Drivers\BSP\Components\ST25DV\;..\Drivers\BSP\NFC04A1\;..\Middlewares\ST\lib_nfc\lib_NDEF\Core\inc;..\Middlewares\ST\lib_nfc\common\inc;..\Inc; +CDefines=__weak:__attribute__((weak));__packed:__attribute__((__packed__));USE_HAL_DRIVER;STM32F401xE; + [ThirdPartyIp] ThirdPartyIpNumber=1 ThirdPartyIpName#0=STMicroelectronics.X-CUBE-NFC4.1.4.0 @@ -15,8 +20,8 @@ ThirdPartyIpName#0=STMicroelectronics.X-CUBE-NFC4.1.4.0 include=../Drivers/BSP/Components/ST25DV;../Drivers/BSP/NFC04A1;../Middlewares/ST/lib_nfc/lib_NDEF/Core/inc;../Middlewares/ST/lib_nfc/common/inc; source=../Drivers/BSP/Components/ST25DV/st25dv_reg.c;../Drivers/BSP/Components/ST25DV/st25dv.c;../Drivers/BSP/NFC04A1/nfc04a1.c;../Drivers/BSP/NFC04A1/nfc04a1_nfctag.c;../Middlewares/ST/lib_nfc/lib_NDEF/Core/src/lib_NDEF.c;../Middlewares/ST/lib_nfc/lib_NDEF/Core/src/lib_NDEF_AAR.c;../Middlewares/ST/lib_nfc/lib_NDEF/Core/src/lib_NDEF_Bluetooth.c;../Middlewares/ST/lib_nfc/lib_NDEF/Core/src/lib_NDEF_Email.c;../Middlewares/ST/lib_nfc/lib_NDEF/Core/src/lib_NDEF_Geo.c;../Middlewares/ST/lib_nfc/lib_NDEF/Core/src/lib_NDEF_Handover.c;../Middlewares/ST/lib_nfc/lib_NDEF/Core/src/lib_NDEF_MyApp.c;../Middlewares/ST/lib_nfc/lib_NDEF/Core/src/lib_NDEF_SMS.c;../Middlewares/ST/lib_nfc/lib_NDEF/Core/src/lib_NDEF_Text.c;../Middlewares/ST/lib_nfc/lib_NDEF/Core/src/lib_NDEF_URI.c;../Middlewares/ST/lib_nfc/lib_NDEF/Core/src/lib_NDEF_Vcard.c;../Middlewares/ST/lib_nfc/lib_NDEF/Core/src/lib_NDEF_Wifi.c;../Middlewares/ST/lib_nfc/lib_NDEF/Core/src/lib_wrapper.c;../Middlewares/ST/lib_nfc/lib_NDEF/Core/src/tagtype3_wrapper.c;../Middlewares/ST/lib_nfc/lib_NDEF/Core/src/tagtype4_wrapper.c;../Middlewares/ST/lib_nfc/lib_NDEF/Core/src/tagtype5_wrapper.c; -[PreviousUsedTStudioFiles] -SourceFiles=..\Src\main.c;..\Src\gpio.c;..\Src\app_x-cube-nfc4.c;..\Src\lib_NDEF_config.c;..\Src\usart.c;..\Src\stm32f4xx_nucleo_bus.c;..\Src\stm32f4xx_it.c;..\Src\stm32f4xx_hal_msp.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;../\Src/system_stm32f4xx.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;../\Src/system_stm32f4xx.c;../Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;null; -HeaderPath=..\Drivers\STM32F4xx_HAL_Driver\Inc;..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F4xx\Include;..\Drivers\CMSIS\Include;..\Drivers\BSP\Components\ST25DV\;..\Drivers\BSP\NFC04A1\;..\Middlewares\ST\lib_nfc\lib_NDEF\Core\inc;..\Middlewares\ST\lib_nfc\common\inc;..\Inc; -CDefines=__weak:__attribute__((weak));__packed:__attribute__((__packed__));USE_HAL_DRIVER;STM32F401xE; +[PreviousUsedCubeIDEFiles] +SourceFiles=Src\main.c;Src\gpio.c;Src\app_x-cube-nfc4.c;Src\lib_NDEF_config.c;Src\usart.c;Src\stm32f4xx_nucleo_bus.c;Src\stm32f4xx_it.c;Src\stm32f4xx_hal_msp.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Src/system_stm32f4xx.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Src/system_stm32f4xx.c;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;null; +HeaderPath=Drivers\STM32F4xx_HAL_Driver\Inc;Drivers\STM32F4xx_HAL_Driver\Inc\Legacy;Drivers\CMSIS\Device\ST\STM32F4xx\Include;Drivers\CMSIS\Include;\Drivers\BSP\Components\ST25DV\;\Drivers\BSP\NFC04A1\;\Middlewares\ST\lib_nfc\lib_NDEF\Core\inc;\Middlewares\ST\lib_nfc\common\inc;Inc; +CDefines=USE_HAL_DRIVER;STM32F401xE; diff --git a/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Dynamic_NFC.ioc b/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Dynamic_NFC.ioc index 0b39ef4..1ff8462 100644 --- a/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Dynamic_NFC.ioc +++ b/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Dynamic_NFC.ioc @@ -179,10 +179,10 @@ ProjectManager.ProjectBuild=false ProjectManager.ProjectFileName=Dynamic_NFC.ioc ProjectManager.ProjectName=Dynamic_NFC ProjectManager.StackSize=0x400 -ProjectManager.TargetToolchain=TrueSTUDIO +ProjectManager.TargetToolchain=STM32CubeIDE ProjectManager.ToolChainLocation= ProjectManager.UnderRoot=true -ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_USART2_UART_Init-USART2-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_USART6_UART_Init-USART6-false-HAL-true,5-MX_NFC_Init-STMicroelectronics.X-CUBE-NFC4.1.4.0-false-HAL-true,6-MX_NFC_Process-STMicroelectronics.X-CUBE-NFC4.1.4.0-false-HAL-true +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_USART2_UART_Init-USART2-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_USART6_UART_Init-USART6-false-HAL-true RCC.48MHZClocksFreq_Value=48000000 RCC.AHBFreq_Value=84000000 RCC.APB1CLKDivider=RCC_HCLK_DIV2 @@ -394,3 +394,4 @@ VP_SYS_VS_Systick.Mode=SysTick VP_SYS_VS_Systick.Signal=SYS_VS_Systick board=NUCLEO-F401RE boardIOC=true +isbadioc=false diff --git a/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Inc/rn4020.h b/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Inc/rn4020.h new file mode 100644 index 0000000..6f91ef4 --- /dev/null +++ b/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Inc/rn4020.h @@ -0,0 +1,18 @@ +/* + * rn4020.h + * + * Created on: 2019/04/25 + */ + +#ifndef RN4020_H_ +#define RN4020_H_ + +#include +#include "usart.h" + +// TX characteristics (NOTIFY) +#define NOTIFY_CHARA "SUW,010203040506070809000A0B0C0D0E0F," + +void notify(uint8_t *data, int len); + +#endif /* RN4020_H_ */ diff --git a/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Src/app_x-cube-nfc4.c b/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Src/app_x-cube-nfc4.c index 44baf92..16bf35b 100644 --- a/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Src/app_x-cube-nfc4.c +++ b/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Src/app_x-cube-nfc4.c @@ -132,8 +132,8 @@ void MX_NFC4_NDEF_URI_Init(void) HAL_Delay( 300 ); /* Prepare URI NDEF message content */ - strcpy( URI.protocol,URI_ID_0x04_STRING ); - strcpy( URI.URI_Message,"github.com/araobp" ); + strcpy( URI.protocol,URI_ID_0x01_STRING ); + strcpy( URI.URI_Message,"st.com/st25-demo" ); strcpy( URI.Information,"\0" ); /* Write NDEF to EEPROM */ diff --git a/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Src/main.c b/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Src/main.c index be5c160..f8e03a8 100644 --- a/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Src/main.c +++ b/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Src/main.c @@ -31,6 +31,7 @@ #include "nfc04a1.h" #include "nfc04a1_nfctag.h" #include "app_nfc_uri.h" +#include "rn4020.h" /* USER CODE END Includes */ @@ -74,7 +75,7 @@ typedef enum { volatile bool field_changed = false; // Command reception from uart2 -volatile bool command_received = false; +volatile bool command_received2 = false; uint8_t uart_rx_buf[BUFSIZE]; uint8_t uart_rx_data; @@ -130,6 +131,9 @@ int main(void) char base_url[BUFSIZE]; + // Notify BLE central of RF field change + uint8_t RF_FIELD_CHANGED[] = "RF_FIELD_CHANGED"; + /* USER CODE END 1 */ @@ -152,6 +156,7 @@ int main(void) /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_USART2_UART_Init(); + MX_USART6_UART_Init(); MX_NFC_Init(); /* USER CODE BEGIN 2 */ NFC04A1_LED_Off( YELLOW_LED ); @@ -187,6 +192,7 @@ int main(void) if (phase == STANDBY) { NFC04A1_LED_On( GREEN_LED ); printf("PHASE 1: RF field change detected\n"); + notify(RF_FIELD_CHANGED, sizeof(RF_FIELD_CHANGED)); // Notify the event to BLE entral pData = extraProcess(); generate_URI_with_serial_number('4', (char *)base_url, (char *)pData, increment); tick_prev = HAL_GetTick(); @@ -235,7 +241,7 @@ int main(void) #endif // Command parser - if (command_received) { + if (command_received2) { if (strcmp((char *)uart_rx_buf, ".r") == 0) { // Reset NFC tag printf("RESET...\n\n"); init_NFC_tag(true); @@ -254,7 +260,7 @@ int main(void) write_data_area2(uart_rx_buf, strlen((char *)uart_rx_buf)+1); strcpy(base_url, (char *)uart_rx_buf); } - command_received = false; + command_received2 = false; } /* USER CODE END WHILE */ @@ -322,11 +328,11 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle) { static int idx = 0; - if (!command_received) { + if (!command_received2) { if (uart_rx_data == '\n') { uart_rx_buf[idx] = '\0'; idx = 0; - command_received = true; + command_received2 = true; } else { uart_rx_buf[idx++] = uart_rx_data; } diff --git a/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Src/rn4020.c b/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Src/rn4020.c new file mode 100644 index 0000000..8d1a81b --- /dev/null +++ b/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/Src/rn4020.c @@ -0,0 +1,70 @@ +/* + * rn4020.c + * + * Created on: 2019/04/25 + */ + +#include "rn4020.h" +#include +#include +#include +#include + +#include "app_nfc_uri.h" + +#define BUFSIZE 64U + +uint8_t uart_rx_data; +uint8_t data_buf[BUFSIZE/2]; +volatile bool command_received = false; +volatile int data_len; +uint8_t cnt = 0; + +char send_buf[100]; + +typedef enum { + CNT_CHARA, URI_CHARA +} tx_chara; + + +/** + * Transfer byte array to a BLE central via RN4020 module. + * + * Note: binary data (uint8_t) is converted into hex in ASCII, + * because RN4020 accepts binary data in ASCII mode. + * + */ +void notify(uint8_t *data, int len) { + + int i = 0; + int idx = 0; + char ascii_hex_buf[3]; + + // TX characteristics + strcpy(send_buf, NOTIFY_CHARA); + + while (true) { + sprintf(ascii_hex_buf, "%02x", data[idx]); + send_buf[37+i*2] = ascii_hex_buf[0]; + send_buf[37+i*2+1] = ascii_hex_buf[1]; + i++; + idx++; + if (i == 20) { // The length of 20 bytes + send_buf[37 + i*2] = '\n'; + HAL_UART_Transmit(&huart6, (uint8_t *)send_buf, 37+i*2+1, 0xffff); + // For debug + send_buf[37 + i*2] = '\0'; + printf("sendData(@20): %s\n", send_buf); + // NOTIFY interval + HAL_Delay(500); + i = 0; + } else if (idx >= len) { // The length of data + send_buf[37 + i*2] = '\n'; + HAL_UART_Transmit(&huart6, (uint8_t *)send_buf, 37+i*2+1, 0xffff); + // For debug + send_buf[37 + i*2] = '\0'; + printf("sendData(@len): %s\n", send_buf); + break; + } + } +} diff --git a/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/mx.scratch b/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/mx.scratch new file mode 100644 index 0000000..df1d3ab --- /dev/null +++ b/NUCLEO-F401RE/NFC/stm32/Dynamic_NFC/mx.scratch @@ -0,0 +1,127 @@ + + + 2.0 + + C:\Users\shiny\Documents\GitHub\stm32-mcu\NUCLEO-F401RE\NFC\stm32\Dynamic_NFC\ + + Dynamic_NFC + + C + + C:\Users\shiny\STM32Cube\Repository\STM32Cube_FW_F4_V1.24.0 + Drivers\CMSIS + STM32CubeIDE + 0 + + + + Dynamic_NFC + STM32F401RETx + Arm Cortex-M4 + SP + + + + + C:\Users\shiny\STM32Cube\Repository\STM32Cube_FW_F4_V1.24.0\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\gcc\startup_stm32f401xe.s + + 0x200 + 0x400 + + NUCLEO-F401RE + + swd + + + + + + + + + + USE_HAL_DRIVER + STM32F401xE + + + + + + + + USE_FULL_LL_DRIVER + MBEDTLS_CONFIG_FILE="mbedtls_config.h" + USE_FULL_ASSERT=1U + + + + + + + + + + + + + + + ..\Drivers\BSP\Components\ST25DV\st25dv_reg.c + ..\Drivers\BSP\Components\ST25DV\st25dv.c + ..\Drivers\BSP\NFC04A1\nfc04a1.c + ..\Drivers\BSP\NFC04A1\nfc04a1_nfctag.c + ..\Middlewares\ST\lib_nfc\lib_NDEF\Core\src\lib_NDEF.c + ..\Middlewares\ST\lib_nfc\lib_NDEF\Core\src\lib_NDEF_AAR.c + ..\Middlewares\ST\lib_nfc\lib_NDEF\Core\src\lib_NDEF_Bluetooth.c + ..\Middlewares\ST\lib_nfc\lib_NDEF\Core\src\lib_NDEF_Email.c + ..\Middlewares\ST\lib_nfc\lib_NDEF\Core\src\lib_NDEF_Geo.c + ..\Middlewares\ST\lib_nfc\lib_NDEF\Core\src\lib_NDEF_Handover.c + ..\Middlewares\ST\lib_nfc\lib_NDEF\Core\src\lib_NDEF_MyApp.c + ..\Middlewares\ST\lib_nfc\lib_NDEF\Core\src\lib_NDEF_SMS.c + ..\Middlewares\ST\lib_nfc\lib_NDEF\Core\src\lib_NDEF_Text.c + ..\Middlewares\ST\lib_nfc\lib_NDEF\Core\src\lib_NDEF_URI.c + ..\Middlewares\ST\lib_nfc\lib_NDEF\Core\src\lib_NDEF_Vcard.c + ..\Middlewares\ST\lib_nfc\lib_NDEF\Core\src\lib_NDEF_Wifi.c + ..\Middlewares\ST\lib_nfc\lib_NDEF\Core\src\lib_wrapper.c + ..\Middlewares\ST\lib_nfc\lib_NDEF\Core\src\tagtype3_wrapper.c + ..\Middlewares\ST\lib_nfc\lib_NDEF\Core\src\tagtype4_wrapper.c + ..\Middlewares\ST\lib_nfc\lib_NDEF\Core\src\tagtype5_wrapper.c + + + + Inc + Drivers\STM32F4xx_HAL_Driver\Inc + Drivers\STM32F4xx_HAL_Driver\Inc\Legacy + Drivers\CMSIS\Device\ST\STM32F4xx\Include + Drivers\CMSIS\Include + \Drivers\BSP\Components\ST25DV\ + \Drivers\BSP\NFC04A1\ + \Middlewares\ST\lib_nfc\lib_NDEF\Core\inc + \Middlewares\ST\lib_nfc\common\inc + + + + + + true + false + + + + Src + + + Drivers + + + + Middlewares + + + + Packs + + + + +