An example writing URI info to NUCLEO-NFC01A1 board
Dependencies: NUCLEO-NFC01A1 lib_NFC_M24SR lib_NFC_NDEF mbed
Fork of Nucleo_NFC_Example by
main.cpp
00001 #include "mbed.h" 00002 #include "lib_TagType4.h" 00003 #include "lib_NDEF_URI.h" 00004 00005 #define BLINK_LED_CYCLES 50 // M24SR command attempts before LED toggle 00006 00007 //------------------------------------ 00008 // Hyperterminal configuration 00009 // 9600 bauds, 8-bit data, no parity 00010 //------------------------------------ 00011 Serial pc(SERIAL_TX, SERIAL_RX); 00012 00013 // LED1 00014 DigitalOut myled(LED1); 00015 00016 // Config LEDs on NUCLEO-NFC01A1 00017 DigitalOut nfcled1(D5); 00018 DigitalOut nfcled2(D4); 00019 DigitalOut nfcled3(D2); 00020 00021 int main() { 00022 sURI_Info URIout; 00023 sURI_Info URIin; 00024 int BlinkLEDCounter = 0; 00025 00026 memset(&URIin, 0x00, sizeof(URIin)); 00027 00028 // All LEDs on NFC shield off 00029 nfcled1 = 0; 00030 nfcled2 = 0; 00031 nfcled3 = 0; 00032 00033 pc.printf("NFC Example\n"); 00034 00035 // Prepare URI NDEF message content 00036 pc.printf("Prepare URI NDEF message content\n"); 00037 strcpy(URIout.protocol,URI_ID_0x01_STRING); 00038 strcpy(URIout.URI_Message,"st.com"); 00039 strcpy(URIout.Information,"\0"); 00040 pc.printf("Done\n\n"); 00041 00042 pc.printf("URIout contents:\n"); 00043 pc.printf("URIout.protocol=%s\n", URIout.protocol); 00044 pc.printf("URIout Type: %d\n", getUriType(URIout.protocol)); 00045 pc.printf("URIout.URI_Message=%s\n\n", URIout.URI_Message); 00046 00047 pc.printf("Initializing Tag Type 4 Access ... "); 00048 // LED1 (green) on NCF shield indicates progress 00049 // blinking = initialization in progress 00050 // solid = init successfull 00051 BlinkLEDCounter = 0; 00052 while(TT4_Init()!=SUCCESS) 00053 { 00054 if(BlinkLEDCounter < BLINK_LED_CYCLES) 00055 { 00056 BlinkLEDCounter++; 00057 } 00058 else 00059 { 00060 BlinkLEDCounter=0; 00061 nfcled1 = !nfcled1; 00062 } 00063 } 00064 // success 00065 nfcled1 = 1; 00066 pc.printf("SUCCESS\n\n"); 00067 00068 // Write URI 00069 // LED2 (blue) on NCF shield indicates progress 00070 // blinking = write URI in progress 00071 // solid = write URI successfull 00072 pc.printf("Writing URI ... "); 00073 BlinkLEDCounter = 0; 00074 while (TT4_WriteURI(&URIout) != SUCCESS) 00075 { 00076 if(BlinkLEDCounter < BLINK_LED_CYCLES) 00077 { 00078 BlinkLEDCounter++; 00079 } 00080 else 00081 { 00082 BlinkLEDCounter=0; 00083 nfcled2 = !nfcled2; 00084 } 00085 } 00086 // success 00087 nfcled2 = 1; 00088 pc.printf("SUCCESS\n\n"); 00089 00090 // Read URI 00091 // LED3 (orange) on NCF shield indicates progress 00092 // blinking = read URI in progress 00093 // solid = read URI successfull 00094 pc.printf("Reading back URI ... "); 00095 BlinkLEDCounter = 0; 00096 while(TT4_ReadURI(&URIin) != SUCCESS) 00097 { 00098 if(BlinkLEDCounter < BLINK_LED_CYCLES) 00099 { 00100 BlinkLEDCounter++; 00101 } 00102 else 00103 { 00104 BlinkLEDCounter=0; 00105 nfcled3 = !nfcled3; 00106 } 00107 } 00108 // success 00109 nfcled3 = 1; 00110 pc.printf("SUCCESS\n\n"); 00111 00112 // Display contents read back 00113 pc.printf("URIin contents:\n"); 00114 pc.printf("URIin.protocol=%s\n", URIin.protocol); 00115 pc.printf("URIin Type: %d\n", getUriType(URIin.protocol)); 00116 pc.printf("URIin.URI_Message=%s\n\n", URIin.URI_Message); 00117 00118 // loop forever 00119 pc.printf("Done\n\n"); 00120 while(1) 00121 { 00122 // blink LED on Nucleo board when done 00123 wait(0.5); 00124 myled = !myled; 00125 } 00126 }
Generated on Thu Jul 14 2022 00:04:54 by 1.7.2