#include <stm32l0xx_hal.h>
UART_HandleTypeDef huart2;
void SystemClock_Config(void) {}
void InitPB3(void) {
GPIO_InitTypeDef gpio = {0};
gpio.Pin = GPIO_PIN_3;
gpio.Mode = GPIO_MODE_OUTPUT_PP;
gpio.Pull = GPIO_NOPULL;
gpio.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &gpio);
}
void InitPA2(){
GPIO_InitTypeDef gpio = {0};
gpio.Pin = GPIO_PIN_2;
gpio.Mode = GPIO_MODE_AF_PP;
gpio.Pull = GPIO_NOPULL;
gpio.Speed = GPIO_SPEED_FREQ_LOW;
gpio.Alternate = GPIO_AF4_USART2;
HAL_GPIO_Init(GPIOA, &gpio);
}
initUart(){
huart2.Instance = USART2;
huart2.Init.BaudRate = 115200;
huart2.Init.WordLength = UART_WORDLENGTH_8B;
huart2.Init.StopBits = UART_STOPBITS_1;
huart2.Init.Parity = UART_PARITY_NONE;
huart2.Init.Mode = UART_MODE_TX_RX;
HAL_UART_Init(&huart2);
}
int main(){
// Начальная инициализация
HAL_Init();
SystemClock_Config();
// Включить тактирование порта B
__HAL_RCC_GPIOB_CLK_ENABLE();
// Включить тактирование USART2
__HAL_RCC_USART2_CLK_ENABLE()
// Включить тактирование порта A
__HAL_RCC_GPIOA_CLK_ENABLE();
InitPB3();
InitPA2();
InitUART2();
HAL_UART_Transmit(&huart2, "Hello from STM32!\r\n");
while(1) {
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_3);
HAL_Delay(1000);
}
}