Bus CAN intégré au lecteur RFID
Dependencies: RTOS-Serial mbed-rtos mbed
main.cpp
00001 #include "mbed.h" 00002 #include "rtos.h" 00003 #include "rtos_serial.h" 00004 #include "tRDM880.h" 00005 00006 #define TXD p28 00007 #define RXD p27 00008 00009 #define ID 0x222 00010 00011 CAN CanPort(p30, p29); 00012 CANMessage MessageTx; 00013 00014 int main() 00015 { 00016 unsigned char Data[100]; 00017 int Res; 00018 tCSN CardNumber; 00019 unsigned char Status; 00020 00021 RTOS_Serial Uart(TXD, RXD); 00022 tRdm880 Reader(&Uart); 00023 00024 while(1){ 00025 00026 Reader.SendGetID(); 00027 Res = Reader.GetResponse(Data); 00028 00029 Status = Reader.getStatus(Data); 00030 00031 if (Status == CMD_OK){ 00032 00033 Res = Reader.getCardSerialNumber(Data,&CardNumber); 00034 00035 if (Res == 0){ 00036 printf("CARD ID = %04X %08X %08X\n",CardNumber.VeryHigh16b,CardNumber.High32b,CardNumber.Low32b); 00037 00038 MessageTx.data[0] = CardNumber.High32b >> 24; 00039 MessageTx.data[1] = CardNumber.High32b >> 16; 00040 MessageTx.data[2] = CardNumber.High32b >> 8; 00041 MessageTx.data[3] = CardNumber.High32b; 00042 00043 MessageTx.data[4] = CardNumber.Low32b >> 24; 00044 MessageTx.data[5] = CardNumber.Low32b >> 16; 00045 MessageTx.data[6] = CardNumber.Low32b >> 8; 00046 MessageTx.data[7] = CardNumber.Low32b; 00047 00048 MessageTx.id=ID; 00049 CanPort.write(MessageTx);//on envoi 8 octets 00050 00051 } else { 00052 printf("ID ERROR\n"); 00053 } 00054 00055 }else { 00056 printf("NO CARD\n"); 00057 } 00058 00059 00060 00061 00062 wait(0.5); 00063 } 00064 } 00065 00066
Generated on Wed Jul 13 2022 22:56:49 by
1.7.2