STM32F769 CAN bus reciever

Dependencies:   BSP_DISCO_F769NI

Committer:
ruigao
Date:
Thu Feb 27 15:18:58 2020 +0000
Revision:
0:9ba764db8c0f
15KV_F769_CAN_rcv

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ruigao 0:9ba764db8c0f 1 #include "mbed.h"
ruigao 0:9ba764db8c0f 2 #include "stm32f769i_discovery.h"
ruigao 0:9ba764db8c0f 3 #include "stm32f769i_discovery_ts.h"
ruigao 0:9ba764db8c0f 4 #include "stm32f769i_discovery_lcd.h"
ruigao 0:9ba764db8c0f 5
ruigao 0:9ba764db8c0f 6 TS_StateTypeDef TS_State = {0};
ruigao 0:9ba764db8c0f 7
ruigao 0:9ba764db8c0f 8 CAN can1(PB_8, PA_12);
ruigao 0:9ba764db8c0f 9 int ct = 0;
ruigao 0:9ba764db8c0f 10
ruigao 0:9ba764db8c0f 11
ruigao 0:9ba764db8c0f 12 int main()
ruigao 0:9ba764db8c0f 13 {
ruigao 0:9ba764db8c0f 14 uint16_t x1, y1;
ruigao 0:9ba764db8c0f 15 CANMessage msgRev;
ruigao 0:9ba764db8c0f 16 can1.frequency(500000);
ruigao 0:9ba764db8c0f 17
ruigao 0:9ba764db8c0f 18 char LCDbuf[3];
ruigao 0:9ba764db8c0f 19
ruigao 0:9ba764db8c0f 20 // printf("\n\n CAN BUS Reciver:\n");
ruigao 0:9ba764db8c0f 21
ruigao 0:9ba764db8c0f 22 BSP_LCD_Init();
ruigao 0:9ba764db8c0f 23 BSP_LCD_LayerDefaultInit(0, LCD_FB_START_ADDRESS);
ruigao 0:9ba764db8c0f 24 BSP_LCD_SelectLayer(0);
ruigao 0:9ba764db8c0f 25
ruigao 0:9ba764db8c0f 26 /* Touchscreen initialization */
ruigao 0:9ba764db8c0f 27 if (BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize()) == TS_ERROR) {
ruigao 0:9ba764db8c0f 28 printf("BSP_TS_Init error\n");
ruigao 0:9ba764db8c0f 29 }
ruigao 0:9ba764db8c0f 30
ruigao 0:9ba764db8c0f 31 /* Clear the LCD */
ruigao 0:9ba764db8c0f 32 BSP_LCD_Clear(LCD_COLOR_WHITE);
ruigao 0:9ba764db8c0f 33
ruigao 0:9ba764db8c0f 34 /* Set Touchscreen Demo1 description */
ruigao 0:9ba764db8c0f 35 BSP_LCD_SetTextColor(LCD_COLOR_BLUE);
ruigao 0:9ba764db8c0f 36 BSP_LCD_FillRect(0, 0, BSP_LCD_GetXSize(), 200);
ruigao 0:9ba764db8c0f 37 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
ruigao 0:9ba764db8c0f 38 BSP_LCD_SetBackColor(LCD_COLOR_BLUE);
ruigao 0:9ba764db8c0f 39 BSP_LCD_SetFont(&Font24);
ruigao 0:9ba764db8c0f 40 BSP_LCD_DisplayStringAt(0, 100, (uint8_t *)"CAN BUS READ", CENTER_MODE);
ruigao 0:9ba764db8c0f 41
ruigao 0:9ba764db8c0f 42 printf("Start CAN BUS \r\n");
ruigao 0:9ba764db8c0f 43 BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
ruigao 0:9ba764db8c0f 44 BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
ruigao 0:9ba764db8c0f 45 // BSP_LCD_DisplayStringAt(0, 300, (uint8_t *)"CAN data", CENTER_MODE);
ruigao 0:9ba764db8c0f 46
ruigao 0:9ba764db8c0f 47 while (1) {
ruigao 0:9ba764db8c0f 48
ruigao 0:9ba764db8c0f 49
ruigao 0:9ba764db8c0f 50 if(can1.read(msgRev)) {
ruigao 0:9ba764db8c0f 51 //printf("Message received: %d\r\n", msgRev.data[0]);
ruigao 0:9ba764db8c0f 52 BSP_LCD_DisplayStringAt(100, 250, (uint8_t *)"Can Msg", CENTER_MODE);
ruigao 0:9ba764db8c0f 53
ruigao 0:9ba764db8c0f 54 if (msgRev.id == 1330){
ruigao 0:9ba764db8c0f 55 //printf ("CAN %d, %d \r\n", msgRev.id, msgRev.data[0]);
ruigao 0:9ba764db8c0f 56 sprintf(LCDbuf, "%d", msgRev.data[0]);
ruigao 0:9ba764db8c0f 57 BSP_LCD_DisplayStringAt(100, 350, (uint8_t *)LCDbuf, LEFT_MODE);
ruigao 0:9ba764db8c0f 58
ruigao 0:9ba764db8c0f 59 }
ruigao 0:9ba764db8c0f 60
ruigao 0:9ba764db8c0f 61 if (msgRev.id == 1331){
ruigao 0:9ba764db8c0f 62 sprintf(LCDbuf, "%d", msgRev.data[0]);
ruigao 0:9ba764db8c0f 63 BSP_LCD_DisplayStringAt(700, 350, (uint8_t *)LCDbuf, LEFT_MODE);
ruigao 0:9ba764db8c0f 64 //printf ("CAN %d, %d \r\n", msgRev.id, msgRev.data[0]);
ruigao 0:9ba764db8c0f 65 }
ruigao 0:9ba764db8c0f 66
ruigao 0:9ba764db8c0f 67
ruigao 0:9ba764db8c0f 68 }
ruigao 0:9ba764db8c0f 69 // BSP_LCD_DisplayStringAt(0, 350, (uint8_t *)ct, CENTER_MODE);
ruigao 0:9ba764db8c0f 70
ruigao 0:9ba764db8c0f 71
ruigao 0:9ba764db8c0f 72 // BSP_TS_GetState(&TS_State);
ruigao 0:9ba764db8c0f 73 // if (TS_State.touchDetected) {
ruigao 0:9ba764db8c0f 74 /* One or dual touch have been detected */
ruigao 0:9ba764db8c0f 75
ruigao 0:9ba764db8c0f 76 /* Get X and Y position of the first touch post calibrated */
ruigao 0:9ba764db8c0f 77 // x1 = TS_State.touchX[0];
ruigao 0:9ba764db8c0f 78 // y1 = TS_State.touchY[0];
ruigao 0:9ba764db8c0f 79 //printf("Touch Detected x=%d y=%d\n", x1, y1);
ruigao 0:9ba764db8c0f 80
ruigao 0:9ba764db8c0f 81 // BSP_LCD_SetTextColor(LCD_COLOR_BLUE);
ruigao 0:9ba764db8c0f 82 // BSP_LCD_FillCircle(x1, y1, 20);
ruigao 0:9ba764db8c0f 83
ruigao 0:9ba764db8c0f 84 // HAL_Delay(100);
ruigao 0:9ba764db8c0f 85 // ct++;
ruigao 0:9ba764db8c0f 86 wait_us(200);
ruigao 0:9ba764db8c0f 87 // }
ruigao 0:9ba764db8c0f 88 }
ruigao 0:9ba764db8c0f 89 }