#include "main.h"

#include "stm32f4xx_ll_gpio.h"
#include "stm32f4xx_ll_bus.h"
#include "stm32f4xx_ll_usart.h"
#include "stm32f4xx_ll_exti.h"
#include "stm32f4xx_ll_system.h"

void SystemClock_Config(void);
/* USER CODE BEGIN PFP */

/* USER CODE END PFP */

/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */

/**
  * @brief  The application entry point.
  * @retval int
  */
int main(void)
{
	volatile int i;
	LL_GPIO_InitTypeDef  GPIO_InitStruct;

	LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOG);
	LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOA);

	GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT;
	GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
	GPIO_InitStruct.Pin = LL_GPIO_PIN_13;
	LL_GPIO_Init  (GPIOG,&GPIO_InitStruct);

	GPIO_InitStruct.Pin = LL_GPIO_PIN_14;
	LL_GPIO_Init  (GPIOG,&GPIO_InitStruct);

	GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
	GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
	GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
	GPIO_InitStruct.Pin = LL_GPIO_PIN_9;
	GPIO_InitStruct.Alternate = LL_GPIO_AF_7;
	LL_GPIO_Init  (GPIOA,&GPIO_InitStruct);

	GPIO_InitStruct.OutputType = LL_GPIO_MODE_INPUT;
	GPIO_InitStruct.Pin = LL_GPIO_PIN_10;
	LL_GPIO_Init  (GPIOA,&GPIO_InitStruct);

	LL_APB2_GRP1_EnableClock  (LL_APB2_GRP1_PERIPH_USART1 ) ;


	LL_USART_InitTypeDef  USART_InitStruct;

	USART_InitStruct.BaudRate = 9600;
	USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B;
	USART_InitStruct.HardwareFlowControl = LL_USART_HWCONTROL_NONE;
	USART_InitStruct.OverSampling = LL_USART_OVERSAMPLING_16;
	USART_InitStruct.Parity = LL_USART_PARITY_NONE;
	USART_InitStruct.StopBits = LL_USART_STOPBITS_1;
	USART_InitStruct.TransferDirection = LL_USART_DIRECTION_TX_RX;
	LL_USART_Init  (USART1, &USART_InitStruct);

	LL_USART_ConfigAsyncMode(USART1);
	LL_USART_Enable(USART1);


  while (1)
  {
	for(i=0;i<1000000;i++);
	LL_USART_TransmitData8  (USART1,'a');

  }

}



