Basic can bus example with LCD hint

Dependencies:   BSP_DISCO_F429ZI LCD_DISCO_F429ZI TS_DISCO_F429ZI mbed

readme.txt

Committer:
tamirci
Date:
2017-12-31
Revision:
0:6d192735c003

File content as of revision 0:6d192735c003:


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);