Posílání řetězce na uart

Ahoj, třeba ti alespoň trochu pomůže toto…

#include "string.h"  
void serial_transmitx(char *buffer, uint16_t pocet){
  uint16_t size = strlen(buffer);
  if(pocet != 0){ size = pocet;}
  while(size){
    while(!(DEBUG_UART_REG->SR & USART_CR1_TCIE));                              // wait while TX buffer full
    DEBUG_UART_REG->DR = *buffer;                                               // send single character to transmit buffer
    buffer++;                                                                   // transmit next character on following loop
    size--;                                                                     // loop until all characters sent (when size = 0)
    }
  while(DEBUG_UART_REG->SR & USART_CR1_TCIE);                                   // wait for last transmission to finish
  return;
  }

void print_number(int16_t cislo){
   char szNumber[12];
   itoa(cislo, szNumber, 10);  
   serial_transmitx(szNumber,0);
   serial_transmitx("\n",0);
   }

int16_t itoa(int16_t number, char* out, int16_t base){
   int16_t t, count;
   char *p, *q;
   char c;
 
   p = q = out;
   if(base < 2 || base > 36) base = 10;
 
   do{
     t = number;
     number /= base;
     if(out) 
       *p = ALPHANUMS[t+35 - number*base];
     p++;
     }while (number);
 
   if(t < 0){
     if (out) *p = '-';
     p++;
     }
   count = p-out;
   if(out){
     *p-- = '\0';
     while(q < p){
       c = *p;
       *p-- = *q;
       *q++ = c;
       }
     }
   return count;
   }