Графический контроллер FT800 и микроконтроллер STM32
Айнур Хакимов

Суть вопроса заключается в выводе кириллицы на дисплей посредством графического контроллера FT800. В библиотеке, которую я использую, нет встроенной функции для загрузки шрифтов. Попытка самостоятельной реализации путем реверс-инжиринга кода на ардуино не увенчались успехом. Если кто то занимался подобным железом прошу помочь в решении вопроса. Заранее благодарю.

Исходный код моей реализации загрузки шрифтов в ОЗУ графического контроллера.

void cmd_inflateFont(const uint8_t* font, uint32_t ptr, int length) {   
  uint16_t sizetransfered;
  uint16_t getfreespace;
  uint32_t length_ =0;
  uint32_t i;
  uint32_t length_1 =0, SizeTransfered = 0;
  unsigned char cTempAddr[3];

  ft800memWrite32(RAM_CMD + cli, CMD_INFLATE);
  cli += 4;
  ft800memWrite32(RAM_CMD + cli, ptr);
  cli += 4;

  do {
  length_ = length;

  getfree(0);

  if (length_ > freespace){
    length_ = freespace;
  }

  do{
    getfree(0);
    getfreespace = freespace;
  } while(getfreespace < length_);


  waitcmdfifo_empty();

  FT800_CS_OFF; // Set chip select low

  SSP_SendData ((uint8_t)((RAM_CMD)>> 16) | MEM_WRITE);
  SSP_SendData ((uint8_t)((RAM_CMD) >> 8));
  SSP_SendData ((uint8_t)(RAM_CMD));
  cli++;

  while (length_--) {
    SSP_SendData (ft_pgm_read_byte_near(font));                     // Send data byte
    font++;
    cli++;
    sizetransfered++;
  }

  FT800_CS_ON;      // Set chip select high
  length_ = sizetransfered;
  updatecmdfifo(cli);
  waitcmdfifo_empty();

  length -= length_;

}   while(length > 0);

  updatecmdfifo(cli);
}
1 чел.