Basic can bus example with LCD hint

Dependencies:   BSP_DISCO_F429ZI LCD_DISCO_F429ZI TS_DISCO_F429ZI mbed

Revision:
0:6d192735c003
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/readme.txt	Sun Dec 31 21:49:17 2017 +0000
@@ -0,0 +1,157 @@
+
+BSP_DISCO_F429ZI (library)
+
+#include "stm32f429i_discovery.h"
+#include  "stm32f429i_discovery_lcd.h"
+
+
+/**
+  * @brief  System Clock Configuration
+  *         The system Clock is configured as follow : 
+  *            System Clock source            = PLL (HSE)
+  *            SYSCLK(Hz)                     = 180000000
+  *            HCLK(Hz)                       = 180000000
+  *            AHB Prescaler                  = 1
+  *            APB1 Prescaler                 = 4
+  *            APB2 Prescaler                 = 2
+  *            HSE Frequency(Hz)              = 8000000
+  *            PLL_M                          = 8
+  *            PLL_N                          = 360
+  *            PLL_P                          = 2
+  *            PLL_Q                          = 7
+  *            VDD(V)                         = 3.3
+  *            Main regulator output voltage  = Scale1 mode
+  *            Flash Latency(WS)              = 5
+  * @param  None
+  * @retval None
+  */
+
+static void Error_Handler(void)
+{
+  while(1) {}
+}
+
+static void SystemClock_Config(void)
+{
+  RCC_ClkInitTypeDef RCC_ClkInitStruct;
+  RCC_OscInitTypeDef RCC_OscInitStruct;
+
+  /* Enable Power Control clock */
+  __PWR_CLK_ENABLE();
+  
+  /* The voltage scaling allows optimizing the power consumption when the device is 
+     clocked below the maximum system frequency, to update the voltage scaling value 
+     regarding system frequency refer to product datasheet.  */
+  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
+  
+  /* Enable HSE Oscillator and activate PLL with HSE as source */
+  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
+  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+  RCC_OscInitStruct.PLL.PLLM = 8;
+  RCC_OscInitStruct.PLL.PLLN = 360;
+  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
+  RCC_OscInitStruct.PLL.PLLQ = 7;
+  if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
+  {
+    /* Initialization Error */
+    Error_Handler();
+  }
+  
+  if(HAL_PWREx_ActivateOverDrive() != HAL_OK)
+  {
+    /* Initialization Error */
+    Error_Handler();
+  }
+  
+  /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 
+     clocks dividers */
+  RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
+  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
+  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
+  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;  
+  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;  
+  if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
+  {
+    /* Initialization Error */
+    Error_Handler();
+  }
+}
+
+
+void Delaimes(int Count) {
+  short int i;
+  for(;Count>0;Count--)
+    {for(i=0;i<0x4fff;i++);
+     }
+}
+
+*/
+
+
+
+
+   HAL_Init();
+    
+    SystemClock_Config();   // SYSclk=180MHz
+   
+    BSP_LCD_Init();
+    BSP_LCD_LayerDefaultInit(LCD_FOREGROUND_LAYER, (LCD_FRAME_BUFFER + BUFFER_OFFSET));
+    BSP_LCD_SetTransparency(LCD_BACKGROUND_LAYER, 0);
+    BSP_LCD_SelectLayer(LCD_FOREGROUND_LAYER);
+    Delaimes(4);
+    BSP_LCD_SetBackColor(LCD_COLOR_BLACK);
+    BSP_LCD_Clear(LCD_COLOR_BLACK );
+    BSP_LCD_SetTextColor(LCD_COLOR_BLUE);
+    Delaimes(4); 
+    BSP_LCD_DisplayOn();
+    BSP_LCD_DisplayStringAtLine(0,buf);
+    Delaimes(4);
+    
+gpiod->alternate=GPIO_AF9_CAN1;
+
+GPIO_InitTypeDef gpiod;      // 
+   HAL_Init();
+    
+    gpiod.Pin = GPIO_PIN_0; gpiod.Mode = GPIO_MODE_AF_PP; 
+    gpiod.Pull = GPIO_PULLUP; gpiod.Speed = GPIO_SPEED_FAST; 
+    gpiod.Alternate = GPIO_AF9_CAN1; 
+    
+    HAL_GPIO_Init(GPIOD, &gpiod);
+
+    gpiod.Pin = GPIO_PIN_1; gpiod.Mode = GPIO_MODE_AF_PP; 
+    gpiod.Pull = GPIO_PULLUP; gpiod.Speed = GPIO_SPEED_FAST; 
+    gpiod.Alternate = GPIO_AF9_CAN1;   
+  
+    HAL_GPIO_Init(GPIOD, &gpiod);
+    
+    
+        HAL_Init();
+  
+
+    __GPIOD_CLK_ENABLE();
+    gpiod.Pin = GPIO_PIN_0; gpiod.Mode = GPIO_MODE_AF_PP; 
+    gpiod.Pull = GPIO_PULLUP; gpiod.Speed = GPIO_SPEED_FAST; 
+    gpiod.Alternate = GPIO_AF9_CAN1; 
+    HAL_GPIO_Init(GPIOD, &gpiod);
+    gpiod.Pin = GPIO_PIN_1; gpiod.Mode = GPIO_MODE_AF_PP; 
+    gpiod.Pull = GPIO_PULLUP; gpiod.Speed = GPIO_SPEED_FAST; 
+    gpiod.Alternate = GPIO_AF9_CAN1;   
+    HAL_GPIO_Init(GPIOD, &gpiod);
+    
+    
+    canint.Init.Prescaler=1;
+    canint.Init.Mode=CAN_MODE_LOOPBACK;
+    canint.Init.SJW=3;
+    canint.Init.BS1=5;
+    canint.Init.BS2=10;
+    canint.Init.TTCM=DISABLE;
+    canint.Init.ABOM=DISABLE;
+    canint.Init.AWUM=DISABLE;
+    canint.Init.NART=DISABLE;
+    canint.Init.RFLM=DISABLE;
+    canint.Init.TXFP=DISABLE;
+    
+    
+    HAL_CAN_Init(&canint);
\ No newline at end of file