Yaroslav Krainyk / Mbed 2 deprecated DISCO_L476VG_UART

Dependencies:   BSP_DISCO_L476VG LCD_DISCO_L476VG mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.c Source File

main.c

Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    main.c
00004   * @author  Ac6
00005   * @version V1.0
00006   * @date    01-December-2013
00007   * @brief   Default main function.
00008   ******************************************************************************
00009 */
00010 
00011 
00012 #include "stm32l4xx.h"
00013 #include "stm32l476g_discovery.h"
00014 #include "main.h"
00015 
00016 void Error_Handler(void);
00017 void SystemClock_Config(void);
00018 
00019 UART_HandleTypeDef UartHandle;
00020 uint8_t buf[2];
00021 
00022 int main(void)
00023 {
00024     uint8_t sbuf[] = "abcd";
00025 
00026     HAL_Init();
00027     SystemClock_Config();
00028     //BSP_LED_Init(LED4);
00029     //BSP_LED_Init(LED5);
00030 
00031     //UartHandle.Instance = USART1;
00032     UartHandle.Instance        = USARTx;
00033 
00034       UartHandle.Init.BaudRate   = 9600;
00035       UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
00036       UartHandle.Init.StopBits   = UART_STOPBITS_1;
00037       UartHandle.Init.Parity     = UART_PARITY_NONE;
00038       UartHandle.Init.HwFlowCtl  = UART_HWCONTROL_NONE;
00039       UartHandle.Init.Mode       = UART_MODE_TX_RX;
00040 
00041       if (HAL_UART_Init(&UartHandle) != HAL_OK)
00042       {
00043         /* Initialization Error */
00044         Error_Handler();
00045       }
00046 
00047     //if (HAL_UART_DeInit(&usart_init) != HAL_OK) {
00048     //  Error_Handler();
00049     //}
00050     //if (HAL_UART_Init(&usart_init) != HAL_OK) {
00051     //  Error_Handler();
00052     //}
00053 
00054     //if (HAL_UART_Transmit(&UartHandle, (uint8_t*)sbuf, 4, 5000) != HAL_OK) {
00055     //  Error_Handler();
00056     //}z
00057     //if (HAL_UART_Receive(&UartHandle, (uint8_t*)buf, 1, 0x1fffffff) != HAL_OK) {
00058     //  Error_Handler();
00059     //}
00060     if (HAL_UART_Transmit_DMA(&UartHandle, (uint8_t*)sbuf, 4) != HAL_OK) {
00061         Error_Handler();
00062     }
00063     if (HAL_UART_Receive_IT(&UartHandle, (uint8_t*)buf, 2) != HAL_OK) {
00064             Error_Handler();
00065     }
00066 
00067     while(1);
00068 }
00069 
00070 void SystemClock_Config(void) {
00071       RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
00072       RCC_OscInitTypeDef RCC_OscInitStruct = {0};
00073 
00074       /* MSI is enabled after System reset, activate PLL with MSI as source */
00075       RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI;
00076       RCC_OscInitStruct.MSIState = RCC_MSI_ON;
00077       RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_6;
00078       RCC_OscInitStruct.MSICalibrationValue = RCC_MSICALIBRATION_DEFAULT;
00079       RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
00080       RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_MSI;
00081       RCC_OscInitStruct.PLL.PLLM = 1;
00082       RCC_OscInitStruct.PLL.PLLN = 40;
00083       RCC_OscInitStruct.PLL.PLLR = 2;
00084       RCC_OscInitStruct.PLL.PLLP = 7;
00085       RCC_OscInitStruct.PLL.PLLQ = 4;
00086       if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
00087       {
00088         /* Initialization Error */
00089         while(1);
00090       }
00091 
00092       /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2
00093          clocks dividers */
00094       RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
00095       RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
00096       RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
00097       RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
00098       RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
00099       if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK)
00100       {
00101         /* Initialization Error */
00102         while(1);
00103       }
00104 }
00105 
00106 void Error_Handler(void)
00107 {
00108   /* Turn LED1 on */
00109   //BSP_LED_On(LED4);
00110   while(1)
00111   {
00112     /* Error if LED1 is slowly blinking (1 sec. period) */
00113     //BSP_LED_Toggle(LED4);
00114     HAL_Delay(1000);
00115   }
00116 }
00117 
00118 void HAL_UART_RxCpltCallback(UART_HandleTypeDef * huart) {
00119     //BSP_LED_On(LED4);
00120 }
00121 
00122 void HAL_UART_TxCpltCallback(UART_HandleTypeDef * huart) {
00123     //BSP_LED_On(LED5);
00124 }
00125 
00126 void HAL_UART_ErrorCallback(UART_HandleTypeDef * huart) {
00127     while(1) {
00128 
00129     }
00130 }
00131