Bus CAN intégré au lecteur RFID

Dependencies:   RTOS-Serial mbed-rtos mbed

Committer:
ValentinB
Date:
Sat Jun 03 14:04:01 2017 +0000
Revision:
1:b28e3aa83d61
Parent:
0:d2c9340b481b
Ajout du bus Can pour le lecteur RFID

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alexis66 0:d2c9340b481b 1 #include "mbed.h"
alexis66 0:d2c9340b481b 2 #include "rtos.h"
alexis66 0:d2c9340b481b 3 #include "rtos_serial.h"
alexis66 0:d2c9340b481b 4 #include "tRDM880.h"
alexis66 0:d2c9340b481b 5
alexis66 0:d2c9340b481b 6 #define TXD p28
alexis66 0:d2c9340b481b 7 #define RXD p27
alexis66 0:d2c9340b481b 8
ValentinB 1:b28e3aa83d61 9 #define ID 0x222
ValentinB 1:b28e3aa83d61 10
ValentinB 1:b28e3aa83d61 11 CAN CanPort(p30, p29);
ValentinB 1:b28e3aa83d61 12 CANMessage MessageTx;
ValentinB 1:b28e3aa83d61 13
alexis66 0:d2c9340b481b 14 int main()
alexis66 0:d2c9340b481b 15 {
alexis66 0:d2c9340b481b 16 unsigned char Data[100];
alexis66 0:d2c9340b481b 17 int Res;
alexis66 0:d2c9340b481b 18 tCSN CardNumber;
alexis66 0:d2c9340b481b 19 unsigned char Status;
alexis66 0:d2c9340b481b 20
alexis66 0:d2c9340b481b 21 RTOS_Serial Uart(TXD, RXD);
alexis66 0:d2c9340b481b 22 tRdm880 Reader(&Uart);
alexis66 0:d2c9340b481b 23
ValentinB 1:b28e3aa83d61 24 while(1){
ValentinB 1:b28e3aa83d61 25
alexis66 0:d2c9340b481b 26 Reader.SendGetID();
alexis66 0:d2c9340b481b 27 Res = Reader.GetResponse(Data);
alexis66 0:d2c9340b481b 28
alexis66 0:d2c9340b481b 29 Status = Reader.getStatus(Data);
alexis66 0:d2c9340b481b 30
ValentinB 1:b28e3aa83d61 31 if (Status == CMD_OK){
alexis66 0:d2c9340b481b 32
alexis66 0:d2c9340b481b 33 Res = Reader.getCardSerialNumber(Data,&CardNumber);
alexis66 0:d2c9340b481b 34
ValentinB 1:b28e3aa83d61 35 if (Res == 0){
ValentinB 1:b28e3aa83d61 36 printf("CARD ID = %04X %08X %08X\n",CardNumber.VeryHigh16b,CardNumber.High32b,CardNumber.Low32b);
ValentinB 1:b28e3aa83d61 37
ValentinB 1:b28e3aa83d61 38 MessageTx.data[0] = CardNumber.High32b >> 24;
ValentinB 1:b28e3aa83d61 39 MessageTx.data[1] = CardNumber.High32b >> 16;
ValentinB 1:b28e3aa83d61 40 MessageTx.data[2] = CardNumber.High32b >> 8;
ValentinB 1:b28e3aa83d61 41 MessageTx.data[3] = CardNumber.High32b;
ValentinB 1:b28e3aa83d61 42
ValentinB 1:b28e3aa83d61 43 MessageTx.data[4] = CardNumber.Low32b >> 24;
ValentinB 1:b28e3aa83d61 44 MessageTx.data[5] = CardNumber.Low32b >> 16;
ValentinB 1:b28e3aa83d61 45 MessageTx.data[6] = CardNumber.Low32b >> 8;
ValentinB 1:b28e3aa83d61 46 MessageTx.data[7] = CardNumber.Low32b;
ValentinB 1:b28e3aa83d61 47
ValentinB 1:b28e3aa83d61 48 MessageTx.id=ID;
ValentinB 1:b28e3aa83d61 49 CanPort.write(MessageTx);//on envoi 8 octets
ValentinB 1:b28e3aa83d61 50
ValentinB 1:b28e3aa83d61 51 } else {
alexis66 0:d2c9340b481b 52 printf("ID ERROR\n");
ValentinB 1:b28e3aa83d61 53 }
alexis66 0:d2c9340b481b 54
ValentinB 1:b28e3aa83d61 55 }else {
ValentinB 1:b28e3aa83d61 56 printf("NO CARD\n");
ValentinB 1:b28e3aa83d61 57 }
alexis66 0:d2c9340b481b 58
alexis66 0:d2c9340b481b 59
alexis66 0:d2c9340b481b 60
alexis66 0:d2c9340b481b 61
alexis66 0:d2c9340b481b 62 wait(0.5);
alexis66 0:d2c9340b481b 63 }
alexis66 0:d2c9340b481b 64 }
alexis66 0:d2c9340b481b 65
alexis66 0:d2c9340b481b 66