PingPong/Core/Src/Print.c
2024-09-01 22:14:57 +03:00

61 lines
1.4 KiB
C

/*
* Print.c
*
* Created on: Aug 19, 2024
* Author: DashyFox
*/
#include "Print.h"
void print(char* str){
unsigned int size = 0;
while (str[size] != '\0')
{
size++;
}
CDC_Transmit_FS((unsigned char*)str, size);
HAL_Delay(1);
}
void int_to_str(int number, char *str, int base)
{
static const char digits[] = "0123456789ABCDEF";
char buffer[32];
char *ptr = buffer + sizeof(buffer) - 1;
int is_negative = 0;
if (number < 0 && base == 10) {
is_negative = 1;
number = -number;
}
*ptr = '\0';
do {
*--ptr = digits[number % base];
number /= base;
} while (number);
if (is_negative) {
*--ptr = '-';
}
// Дополнение ведущим нулем для шестнадцатеричных чисел
if (base == 16 && (buffer + sizeof(buffer) - 1 - ptr) == 1) {
*--ptr = '0';
}
strcpy(str, ptr);
}
void printNumber(long int number)
{
char buffer[BUFFER_SIZE];
// Преобразование числа в строку
int_to_str(number, buffer, 10); // 10 — это основание системы счисления (десятичная система)
strcat(buffer, "\r\n"); // Добавление новой строки
// Отправка строки через USB CDC
CDC_Transmit_FS((uint8_t*)buffer, strlen(buffer));
HAL_Delay(1);
}