/* USER CODE END USART2_Init 1 */
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;
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if (HAL_UART_Init(&huart2) != HAL_OK)
{
Error_Handler();
}
pa2 i pa3
int counter = 0;
const char *message = "Hello world \r\n ";
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
HAL_UART_Transmit(&huart2,
message, strlen(message),HAL_MAX_DELAY);
/* USER CODE BEGIN 3 */
HAL_Delay(counter);
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);
}
include string
zad2
/* USER CODE BEGIN 2 */
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
Send_UART("off\r\n");
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
uint8_t current_button_state = HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13);
if (last_button_state == 1 && current_button_state == 0)
{
HAL_Delay(50);
if (HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13) == 0)
{
led_state = !led_state;
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, led_state ? GPIO_PIN_SET :
GPIO_PIN_RESET);
if (led_state)
Send_UART("on\r\n");
else
Send_UART("off\r\n");
}
while (HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13) == 0)
{
HAL_Delay(10);
}
}
last_button_state = current_button_state;
zad3
HAL_UART_Transmit(&huart2, (uint8_t*)start_msg, strlen(start_msg), HAL_MAX_DELAY);
/* USER CODE END 2 */
/* Infinite loop */
while (1)
{
uint8_t current_button_state = HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13);
if (last_button_state == 1 && current_button_state == 0)
{
HAL_Delay(50);
if (HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13) == 0)
{
counter++;
send_number(counter);
}
while (HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13) == 0)
{
HAL_Delay(10);
}
}
last_button_state = current_button_state;
HAL_Delay(10);
}
}
/* USER CODE BEGIN 4 */
/**
*/
void int_to_str(uint32_t value, char *buffer)
{
char temp[12];
uint8_t i = 0;
if (value == 0)
{
buffer[0] = '0';
buffer[1] = '\0';
return;
}
while (value > 0)
{
temp[i++] = (value % 10) + '0';
value /= 10;
}
uint8_t j = 0;
while (i > 0)
{
buffer[j++] = temp[--i];
}
buffer[j] = '\0';
}
ZADANIE 44
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART2_UART_Init();
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
HAL_UART_Receive_IT(&huart2, &odebranyZnak, 1);
while (1)
{
if (flaga)
{
flaga = 0;
bufor[indeks] = '\0';
if (strcmp(bufor, "on") == 0)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
HAL_UART_Transmit(&huart2, (uint8_t*)"Dioda wlaczona\r\n> ", 19,
HAL_MAX_DELAY);
}
else if (strcmp(bufor, "off") == 0)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
HAL_UART_Transmit(&huart2, (uint8_t*)"Dioda wylaczona\r\n> ", 20,
HAL_MAX_DELAY);
}
else
{
HAL_UART_Transmit(&huart2, (uint8_t*)"Nieznana komenda\r\n> ", 22,
HAL_MAX_DELAY);
}
indeks = 0;
}
}
}
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if (huart->Instance != USART2) return;
if (odebranyZnak == '\r' || odebranyZnak == '\n')
{
HAL_UART_Transmit(&huart2, (uint8_t*)"\r\n", 2, HAL_MAX_DELAY);
flaga = 1;
}
zad 5
int __io_getchar(void)
{
uint8_t ch;
HAL_UART_Receive(&huart2, &ch, 1, HAL_MAX_DELAY);
return (int)ch;
}
int _read(int file, char *ptr, int len)
{
int received = 0;
for (int i = 0; i < len; i++)
{
ptr[i] = __io_getchar();
HAL_UART_Transmit(&huart2, (uint8_t*)&ptr[i], 1, HAL_MAX_DELAY);
if (ptr[i] == 0x08 || ptr[i] == 0x7F)
{
if (received > 0)
{
received--;
i -= 2;
uint8_t bs[] = "\b \b";
HAL_UART_Transmit(&huart2, bs, 3, HAL_MAX_DELAY);
}
else
{
i--;
}
continue;
}
if (ptr[i] == '\r')
{
ptr[i] = '\n';
uint8_t nl = '\n';
HAL_UART_Transmit(&huart2, &nl, 1, HAL_MAX_DELAY);
received++;
break;
}
received++;
}
return received;
}
/* === main === */
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART2_UART_Init();
setvbuf(stdin, NULL, _IONBF, 0);
int a, b, c;
printf("\r\n=\r\n");
while (1)
{
do {
printf("Podaj pierwsza liczbe: ");
fflush(stdout);
if (scanf("%d", &a) == 1)
break;
printf("Bledne dane!\r\n");
int ch;
while ((ch = getchar()) != '\n' && ch != EOF);
} while (1);
do {
printf("Podaj druga liczbe: ");
fflush(stdout);
if (scanf("%d", &b) == 1)
break;
printf("Bledne dane!\r\n");
int ch;
while ((ch = getchar()) != '\n' && ch != EOF);
} while (1);
c = a + b;
printf("%d + %d = %d\r\n\r\n", a, b, c);
}
}