Jump to content

All Activity

This stream auto-updates     

  1. Last week
  2. Thank you for bringing this to our attention. We've added looking into this to our ToDo list.
  3. Earlier
  4. gdispImageOpen_BMP() functions uses up to 36 bytes of allocated buffer in priv->buf. Default allocated length of priv->buf is defined by GDISP_IMAGE_BMP_BLIT_BUFFER_SIZE which is only 32 bytes. By default this causes a buffer overflow,. Please increase default value of GDISP_IMAGE_BMP_BLIT_BUFFER_SIZE to 36.
  5. The µGFX-Studio is currently not available for any kind of use in a production environment and/or commercial use. This is indicated on the µGFX-Studio download page.
  6. with all due respect, i gave the request last month. It is supposed to buy your program for commercial use. I am ready to pay. But I need to see if it fits? Is it comfortable? and so on ... Not really so hard to open access to the file? or write an answer? So things are not done.
  7. There's a list of all supported controllers on the website/homepage. You can also have a look at the /drivers directory. And as @inmarket said: Adding a new driver is very easy. There's documentation and plenty of existing samples including drivers for very similar display controllers.
  8. V3 is very dependant on available resources which, given that we are full time on commercial projects, is happening much slower than we want. Unfortunately we have to prioritise commercial projects. What this shows is that v2.x is still very good and very current. V3 adds new capabilities and makes improvements in compiling and the gdisp api but is a very big change internally that means it is slow to release. In conclusion, v3 will be soon but no published eta yet.
  9. Thanks! I`ll try to update the display as you advise. When is release 3.0 expected?
  10. Have a look at the gkeyboard drivers. They support having multiple character sets mapped to the same key depending on their mode. Take a normal pc keyboard, it produces scan codes (equivalent to your 4x4 keyboard producing codes 0 to 16) which get translated to ascii characters which depend on the language, the mapping mode eg numlock/capslock, and multi-key combinations like shift. So your 4x4 keyboard is a large simplification on a keyboard such as a pc keyboard for which you already have the driver in the ugfx repository for you to use as example code.
  11. No. gdispFillString always fills the background area first. This may change sometime after V3 is released but for now that is the way it works. A simple way to reduce the drawing is to not redraw the constant part of the string. For example "Temperature: " could be displayed once only and only the temperature itself be updated in your loop.
  12. Thanks, but I can only find dial/toggle/tough at /uGFX/drivers. The toggle driver can do some simple job like a switch. However, I need a keyboard to type words. The problem is that how can I map the keys to different key-values, so that I can link the driver to uGFX. I try to find a example but I didn't find it, maybe I get the wrong directory. Anyway, could you please tell me where I can find it or provide a demo code? Thank you.
  13. Thanks for answer. I have my embed library. SPI speed there is much slower than in the project with uGFX. And there are no blinks. Drawing there is different. The text box is drawn completely at the same time - pixels of the symbol color and background color pixels. In uGFX, first the field is drawn with the background color, and then the pixels are drawn with the color of the characters. Therefore, I see "blinking." I can not raise the SPI frequency anymore - this is the maximum for the STM32F103C8. Can I change the drawing method?
  14. In your board_SSD1331.cpp at the top of the file above all other #include's try adding... #include "gfx.h" This compile error has likely been introduced in V2.9 because we have changed lots of type names and unfortunately we don't get to test every platform before release. Let us know if this works.
  15. I can't remember off the top of my head if the ST7567 controller is already supported however there are plenty of similar STxxxx monochrome drivers that could be easily modified if necessary.
  16. There are a couple of example keyboard drivers you can copy and modify. Just copy an existing driver, modify it and link link it into your project instead on one of the standard drivers. While this is a bit laborious in V2.x it will be much easier in V3.
  17. The "blinking" you are seeing is because your display communication is slow (SPI) and you are constantly updating the display.
  18. Please stop the chatter. The group is alive and well. We do however get very busy supporting real paying projects so our support on this forum is in our spare time and on occasion it can take a few days for us to reply. If you want the Beta please follow the instructions. Asking to be included here will not help.
  19. Hi to all. Sorry my eanglish, i`m from Ukraine. I was porting uGFX to STM32F103C8T6, but i have a problem. Image is blinking. I use SPI connection. Maybe I'm using the wrong text output function? Why is the entire text field redrawn? Please, help me. Here is a video of what is happening /* * This file is subject to the terms of the GFX License. If a copy of * the license was not distributed with this file, you can obtain one at: * * http://ugfx.io/license.html */ #ifndef _GDISP_LLD_BOARD_H #define _GDISP_LLD_BOARD_H #include "gfx.h" #include "spi.h" #include "gpio.h" #include "stm32f1xx_hal.h" #include "main.h" #define LCD_PORT GPIOB #define LCD_MOSI GPIO_PIN_15 #define LCD_MISO GPIO_PIN_14 #define LCD_SCK GPIO_PIN_13 #define LCD_CS GPIO_PIN_12 #define LCD_DC GPIO_PIN_10 #define LCD_RES GPIO_PIN_11 extern SPI_HandleTypeDef hspi2; static GFXINLINE void init_board(GDisplay *g) { (void) g; // As we are not using multiple displays we set g->board to NULL as we don't use it. hspi2.Instance = SPI2; hspi2.Init.Mode = SPI_MODE_MASTER; hspi2.Init.Direction = SPI_DIRECTION_2LINES; hspi2.Init.DataSize = SPI_DATASIZE_8BIT; hspi2.Init.CLKPolarity = SPI_POLARITY_LOW; hspi2.Init.CLKPhase = SPI_PHASE_1EDGE; hspi2.Init.NSS = SPI_NSS_SOFT; hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi2.Init.TIMode = SPI_TIMODE_DISABLE; hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi2.Init.CRCPolynomial = 10; if (HAL_SPI_Init(&hspi2) != HAL_OK) { Error_Handler(); } } static GFXINLINE void post_init_board(GDisplay *g) { (void) g; } static GFXINLINE void setpin_reset(GDisplay *g, gBool state) { (void) g; if(state == 1){ HAL_GPIO_WritePin(GPIOB, LCD_RES, GPIO_PIN_RESET);} else { HAL_GPIO_WritePin(LCD_PORT, LCD_RES, GPIO_PIN_SET);} } static GFXINLINE void set_backlight(GDisplay *g, gU8 percent) { (void) g; if (percent > 0) { HAL_GPIO_WritePin(GPIOB, LCD_BL_Pin, GPIO_PIN_SET); } else { HAL_GPIO_WritePin(GPIOB, LCD_BL_Pin, GPIO_PIN_RESET); } } static GFXINLINE void acquire_bus(GDisplay *g) { (void) g; } static GFXINLINE void release_bus(GDisplay *g) { (void) g; } static GFXINLINE void write_index(GDisplay *g, gU16 index) { (void) g; HAL_GPIO_WritePin(LCD_PORT, LCD_DC_Pin, GPIO_PIN_RESET); HAL_SPI_Transmit(&hspi2, (gU8*)&index, 1, 1); } static GFXINLINE void write_data(GDisplay *g, gU16 data) { (void) g; HAL_GPIO_WritePin(LCD_PORT, LCD_DC_Pin, GPIO_PIN_SET); //GPIOB->BRR=GPIO_BRR_BR10 ; //HAL_SPI_Transmit(&hspi2, (gU8*)&data, 1, 1);//Медленно работает while (!(SPI2->SR & SPI_SR_TXE)){}; // при входе на отправку проверяем - а пустой ли SPI_DR SPI2->DR = data; } static GFXINLINE void setreadmode(GDisplay *g) { (void) g; } static GFXINLINE void setwritemode(GDisplay *g) { (void) g; } static GFXINLINE gU16 read_data(GDisplay *g) { (void) g; uint8_t buffer[4]; //buffer: [0]R, [1]dummy,[2]B, [3]G HAL_GPIO_WritePin(LCD_PORT, LCD_DC_Pin, GPIO_PIN_SET); HAL_SPI_Receive(&hspi2, buffer+0, 1, 1); HAL_SPI_Receive(&hspi2, buffer+2, 1, 1); return RGB2COLOR(buffer[0], buffer[3], buffer[2]); } #endif /* _GDISP_LLD_BOARD_H */ int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ //____________________________ОБЯЗАТЕЛЬНО ДЛЯ ЗАПУСКА I2C на STM32F1XX______// __HAL_RCC_I2C1_CLK_ENABLE(); HAL_Delay(100); __HAL_RCC_I2C1_FORCE_RESET(); HAL_Delay(100); __HAL_RCC_I2C1_RELEASE_RESET(); HAL_Delay(100); //__________________________________________________________________________// /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_SPI2_Init(); MX_I2C1_Init(); MX_USART1_UART_Init(); /* USER CODE BEGIN 2 */ while(SysTick_Config(SystemCoreClock / 1000)); gfxInit(); HAL_Delay(100); font1 = gdispOpenFont("DejaVuSans32_aa"); //gdispDrawString(0, 0, "HELLO uGFX 2.9!", font1, GFX_WHITE); //gdispFillArea(50,50,100,100, Blue); //gdispFillCircle(100, 100, 30, Yellow); BME280_Init(); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ //HAL_Delay(1000); tf = BME280_ReadTemperature(); sprintf(str1, "Temperature: %.3f *C\r\n", tf); HAL_UART_Transmit(&huart1,(uint8_t*)str1,strlen(str1),0x1000); sprintf(str1, "%11.3f *C", tf); pf = BME280_ReadPressure(); sprintf(str1, "Pressure: %.3f Pa; %.3f hPa; %.3f mmHg\r\n", pf, pf/1000.0f, pf * 0.000750061683f); HAL_UART_Transmit(&huart1,(uint8_t*)str1,strlen(str1),0x1000); sprintf(str1, "%11.3f hPa", pf/1000.0f); sprintf(str1, "%11.3f mmHg", pf * 0.000750061683f); af = BME280_ReadAltitude(SEALEVELPRESSURE_PA); sprintf(str1, "Altitude: %.3f m\r\n", af); HAL_UART_Transmit(&huart1,(uint8_t*)str1,strlen(str1),0x1000); hf = BME280_ReadHumidity(); sprintf(str1, "Humidity: %.3f %%\r\n", hf); HAL_UART_Transmit(&huart1,(uint8_t*)str1,strlen(str1),0x1000); sprintf(str1, "%7.3f %% %4.1f m", hf, af); sprintf(temper, "Temperature: %.1f C", tf); sprintf(pressure, "Pressure: %.1f mm", pf * 0.000750061683f); sprintf(humidity, "Humidity: %.1f %%", hf); //gdispClear(GFX_BLACK); gdispFillString(0, 0, temper, font1, GFX_WHITE, GFX_BLACK); gdispFillString(0, 50, pressure, font1, GFX_WHITE, GFX_BLACK ); gdispFillString(0, 100, humidity, font1, GFX_WHITE, GFX_BLACK); //HAL_Delay(1000); //gfxMillisecondsToTicks(1000); //gdispGFlush(0); HAL_GPIO_TogglePin(GPIOC, LED_Pin); } /* USER CODE END 3 */ }
  20. Hi, I'm trying to add a TEXTEDIT on my lcd. But it needs a keyboard to do the input work. What I have is a 4*4 matrix keyboard ( number and some keys for custom). Obviously, there‘s no exist driver in the demo. So, I wonder how can I add my own driver. Is there any file like board_xxx.h? Or something else? Thank you for any help!
  21. Hi Sting, have you Done changes? I am also trying to change existing 4.3 to 7/10" TFT on my STM32F746g-disco, pls let me know..
  22. i can't download your studio , i have follow your instruction (Joel Bodenmann) 1- send msg for you 2-follw studio group can you help me plz
  23. Вроде проект не плохой, предлагаю купить если работает, но как то не серьезно... дайте обратную связь, или да или нет, это не сложно написать.
  24. I'm going to use JAZZ A-W6WFDW monochrome display in my project which is using ST7567 Controller. Can I use ugfx or its limited to some of the controllers outside only?
  25. I have a feeling that the project is dead .. Is there anyone alive here? :))
  1. Load more activity
  • Create New...