#include "stm32l0xx_hal.h"
void GPIO_Init(void)
{
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_InitTypeDef GPIO_InitStruct={0};
GPIO_InitStruct.Pin=GPIO_PIN_5;
GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull=GPIO_NOPULL;
GPIO_InitStruct.Speed=GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA,&GPIO_InitStruct);
GPIO_InitStruct.Pin=GPIO_PIN_0;
GPIO_InitStruct.Mode=GPIO_MODE_IT_FALLING;
GPIO_InitStruct.Pull=GPIO_NOPULL;
HAL_GPIO_Init(GPIOA,&GPIO_InitStruct);
HAL_NVIC_SetPriority(EXTI0_1_IRQn,2,0);
HAL_NVIC_EnableIRQ(EXTI0_1_IRQn);
}
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct={0};
RCC_OscInitStruct.OscillatorType=RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState=RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState=RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource=RCC_PLL_HSE;
RCC_OscInitStruct.PLL.PLLM=8;
RCC_OscInitStruct.PLL.PLLN=336;
RCC_OscInitStruct.PPL.PLLP=DIV2;
RCC_OscInitStruct.PLL.PLLQ=7;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
RCC_ClkInitTypeDef RCC_ClkInitStruct={0};
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_DIV2;
RCC_ClkInitStruct.APB1CLKDivider=RCC_HCLK_DIV2;
RCC_ClKinitStruct.APB2CLKDivider=RCC_HCLK_DIV4;
HAL_RCC_ClkConfig(&RCC_ClkInitStruct,FLASH_LATENCY_5);
}
void EXTI0_1_IRQHandler(void)
{
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
}
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin==GPIO_PIN_0)
{
HAL_TogglePin(GPIOA,GPIO_PIN_5);
}
}
UART_HandleTypeDef huart2:
static voidc MX_USART2_UART_Init(void)
{
huart2.Instance=USART2;
huart2.Init.BaudRate=115200;
huart2.Init.WordLength=UART_WORDLENGTH_8B;
huart2.Init.Parity=UART_PARITY_NONE;
huart2.Init.StopBits=UART_STOPBITS_1;
huart2.Init.Mode=UART_MODE_TX;
huart2.Init.HwFlowCtl=UART_HWFLOWCTL_NONE;
huart2.Init.OverSampling=UART_OVERSAMPLING_16;
if(HAL_UART_Init(&huart2)!=HAL_OK
{
ErrorHandler();
}
}
int main()
{
HAL_Init();
SystemClock_Config();
GPIO_Init();
uint8_t msg[]="HELLO WORLD";
HAL_UART_Transmit(&huart2,msg,sizeof(msg)-1,HAL_MAX_DELAY);
while(1)
{
}
}