Example #1
0
//--------------------------------------------------------------
// Screen als Bitmap (*.bmp) per UART senden
// dauert bei 115200 Baud ca. 20 sekunden
//--------------------------------------------------------------
void p_oszi_send_screen(void)
{
  uint32_t n,adr;
  uint16_t x,y,color;
  uint8_t r,g,b;

  // BMP-Header senden
  for(n=0;n<BMP_HEADER_LEN;n++) {
    UB_Uart_SendByte(COM1,BMP_HEADER[n]);
  }

  // den richigen Buffer zum senden raussuchen
  if(LCD_CurrentLayer==1) {
    adr=LCD_FRAME_BUFFER;
  }
  else {
    adr=LCD_FRAME_BUFFER + LCD_FRAME_OFFSET;
  }

  // alle Farb-Daten senden
  for(x=0;x<LCD_MAXX;x++) {
    for(y=0;y<LCD_MAXY;y++) {
      n=y*(LCD_MAXX*2)+(x*2);
      color=*(volatile uint16_t*)(adr+n);
      r=((color&0xF800)>>8);  // 5bit rot
      g=((color&0x07E0)>>3);  // 6bit gruen
      b=((color&0x001F)<<3);  // 5bit blau
      UB_Uart_SendByte(COM1,b);
      UB_Uart_SendByte(COM1,g);
      UB_Uart_SendByte(COM1,r);
    }
  }
}
Example #2
0
//--------------------------------------------------------------
// ein Daten Array per UART senden
// cnt = Anzahl der Daten die gesendet werden sollen
//--------------------------------------------------------------
void UB_Uart_SendArray(UART_NAME_t uart, uint8_t *data, uint16_t cnt)
{
  uint32_t n;

  if(cnt==0) return;

  // sende alle Daten
  for(n=0;n<cnt;n++) {
    UB_Uart_SendByte(uart,data[n]);
  }  
}
Example #3
0
//--------------------------------------------------------------
// einen String per UART senden
//
// Endekennung vom String muss 0x00 sein !!
//
// end_cmd : NONE, LFCR, CRLF, LF, CR
//--------------------------------------------------------------
void UB_Uart_SendString(UART_NAME_t uart, char *ptr, UART_LASTBYTE_t end_cmd) {
  uint16_t length = 0;

  // laenge ermitteln
  while (ptr[length] != '\0') {
    length++;
  }

  // sende kompletten String
  if (uart == COM1) {
    HAL_UART_Transmit(&UartHandle1, (uint8_t *)(ptr), length, UART_TX_TIMEOUT);
  }
  if (uart == COM6) {
    HAL_UART_Transmit(&UartHandle6, (uint8_t *)(ptr), length, UART_TX_TIMEOUT);
  }
  if (uart == COM7) {
    HAL_UART_Transmit(&UartHandle7, (uint8_t *)(ptr), length, UART_TX_TIMEOUT);
  }

  // eventuell Endekennung senden
  if (end_cmd == LFCR) {
    UB_Uart_SendByte(uart, 0x0A); // LineFeed senden
    UB_Uart_SendByte(uart, 0x0D); // CariageReturn senden
  } else if (end_cmd == CRLF) {
    UB_Uart_SendByte(uart, 0x0D); // CariageReturn senden
    UB_Uart_SendByte(uart, 0x0A); // LineFeed senden
  } else if (end_cmd == LF) {
    UB_Uart_SendByte(uart, 0x0A); // LineFeed senden
  } else if (end_cmd == CR) {
    UB_Uart_SendByte(uart, 0x0D); // CariageReturn senden
  }
}
Example #4
0
//--------------------------------------------------------------
// einen String per UART senden
//--------------------------------------------------------------
void UB_Uart_SendString(UART_NAME_t uart, char *ptr, UART_LASTBYTE_t end_cmd)
{
  // sende kompletten String
  while (*ptr != 0) {
    UB_Uart_SendByte(uart,*ptr);
    ptr++;
  }
  // eventuell Endekennung senden
  if(end_cmd==LFCR) {
    UB_Uart_SendByte(uart,0x0A); // LineFeed senden
    UB_Uart_SendByte(uart,0x0D); // CariageReturn senden
  }
  else if(end_cmd==CRLF) {    
    UB_Uart_SendByte(uart,0x0D); // CariageReturn senden
    UB_Uart_SendByte(uart,0x0A); // LineFeed senden
  }
  else if(end_cmd==LF) {    
    UB_Uart_SendByte(uart,0x0A); // LineFeed senden
  }
  else if(end_cmd==CR) {    
    UB_Uart_SendByte(uart,0x0D); // CariageReturn senden    
  }
}