STM32F769 CAN bus reciever

Dependencies:   BSP_DISCO_F769NI

main.cpp

Committer:
ruigao
Date:
2020-02-27
Revision:
0:9ba764db8c0f

File content as of revision 0:9ba764db8c0f:

#include "mbed.h"
#include "stm32f769i_discovery.h"
#include "stm32f769i_discovery_ts.h"
#include "stm32f769i_discovery_lcd.h"

TS_StateTypeDef  TS_State = {0};

CAN can1(PB_8, PA_12);
int ct = 0;


int main()
{
    uint16_t x1, y1;
    CANMessage msgRev;
    can1.frequency(500000);
    
    char LCDbuf[3];

  //  printf("\n\n CAN BUS Reciver:\n");

    BSP_LCD_Init();
    BSP_LCD_LayerDefaultInit(0, LCD_FB_START_ADDRESS);
    BSP_LCD_SelectLayer(0);

    /* Touchscreen initialization */
    if (BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize()) == TS_ERROR) {
        printf("BSP_TS_Init error\n");
    }

    /* Clear the LCD */
    BSP_LCD_Clear(LCD_COLOR_WHITE);

    /* Set Touchscreen Demo1 description */
    BSP_LCD_SetTextColor(LCD_COLOR_BLUE);
    BSP_LCD_FillRect(0, 0, BSP_LCD_GetXSize(), 200);
    BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
    BSP_LCD_SetBackColor(LCD_COLOR_BLUE);
    BSP_LCD_SetFont(&Font24);
    BSP_LCD_DisplayStringAt(0, 100, (uint8_t *)"CAN BUS READ", CENTER_MODE);
    
    printf("Start CAN BUS \r\n");
    BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
    BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
   // BSP_LCD_DisplayStringAt(0, 300, (uint8_t *)"CAN data", CENTER_MODE);
    
    while (1) {
        
           
          if(can1.read(msgRev)) {
            //printf("Message received: %d\r\n", msgRev.data[0]);
            BSP_LCD_DisplayStringAt(100, 250, (uint8_t *)"Can Msg", CENTER_MODE);
            
            if (msgRev.id == 1330){
                //printf ("CAN %d,  %d \r\n", msgRev.id, msgRev.data[0]);
                sprintf(LCDbuf, "%d", msgRev.data[0]);
                BSP_LCD_DisplayStringAt(100, 350, (uint8_t *)LCDbuf, LEFT_MODE);
            
            }
            
            if (msgRev.id == 1331){
                 sprintf(LCDbuf, "%d", msgRev.data[0]);
                BSP_LCD_DisplayStringAt(700, 350, (uint8_t *)LCDbuf, LEFT_MODE);
                //printf ("CAN %d,  %d \r\n", msgRev.id, msgRev.data[0]);
            }
            
            
            }
 //       BSP_LCD_DisplayStringAt(0, 350, (uint8_t *)ct, CENTER_MODE);
        
        
//        BSP_TS_GetState(&TS_State);
//        if (TS_State.touchDetected) {
            /* One or dual touch have been detected          */

            /* Get X and Y position of the first touch post calibrated */
//            x1 = TS_State.touchX[0];
//            y1 = TS_State.touchY[0];
            //printf("Touch Detected x=%d y=%d\n", x1, y1);

 //           BSP_LCD_SetTextColor(LCD_COLOR_BLUE);
 //           BSP_LCD_FillCircle(x1, y1, 20);

           // HAL_Delay(100);
//           ct++;
           wait_us(200);
     //   }
    }
}