uweng14
-
Posts
3 -
Joined
-
Last visited
Content Type
Forums
Store
Downloads
Blogs
Posts posted by uweng14
-
-
Hello,
I've upgraded to the latest ugfx version, and I am seeing some compilation errors.
1) there is an undefined variable "ld" within src\gwin\button.c in the the following code
gdispFillArea(gw->g.x, gw->g.y, ld, ld, gw->pstyle->background);
2) there is no definition for "gfxQueueASyncInit", which seems like there is some missing header files for gwm.c under src/gwin
Any help would be appreciated to get the new ugfx running
thanks,
David
-
Hi Tectu,
I've posted on the old chibios forum, here is the link to that post.
http://forum.chibios.org/phpbb/viewtopi ... =11&t=1308
So I've tested all the suggestions you recommanded last time. But unfortunately I still can't get it to work.
I am using the ARMCM4-STM32F407-DISCOVERY board.
One question about PAL_STM32_OSPEED_HIGHEST,if I were to not use this macro. Do I replace it with something else or just leave it blank?
here is my current gdisp_lld_board.h
I've added an extra spi command that sends the 0x70 starting bit to start the spi communication before read and writes. The distributor example code had this line which I could not find it anywhere else in the driver code.
#ifndef GDISP_LLD_BOARD_H
#define GDISP_LLD_BOARD_H
#define SET_RST palSetPad(GPIOB, 8);
#define CLR_RST palClearPad(GPIOB, 8);
// Peripherial Clock 42MHz SPI2 SPI3
// Peripherial Clock 84MHz SPI1 SPI1 SPI2/3
//#define SPI_BaudRatePrescaler_2 ((uint16_t)0x0000) // 42 MHz 21 MHZ
//#define SPI_BaudRatePrescaler_4 ((uint16_t)0x0008) // 21 MHz 10.5 MHz
//#define SPI_BaudRatePrescaler_8 ((uint16_t)0x0010) // 10.5 MHz 5.25 MHz
//#define SPI_BaudRatePrescaler_16 ((uint16_t)0x0018) // 5.25 MHz 2.626 MHz
//#define SPI_BaudRatePrescaler_32 ((uint16_t)0x0020) // 2.626 MHz 1.3125 MHz
//#define SPI_BaudRatePrescaler_64 ((uint16_t)0x0028) // 1.3125 MHz 656.25 KHz
//#define SPI_BaudRatePrescaler_128 ((uint16_t)0x0030) // 656.25 KHz 328.125 KHz
//#define SPI_BaudRatePrescaler_256 ((uint16_t)0x0038) // 328.125 KHz 164.06 KHz
/*
*
* 10.5MHz, CPHA=1, CPOL=0, MSb first, 16 - bits
*
*/
static const SPIConfig spi2cfg1 = {
NULL,
/* HW dependent part.*/
GPIOB,
12,
SPI_CR1_DFF | SPI_CR1_CPHA | SPI_CR1_BR_0
};
static inline void gdisp_lld_init_board(void) {
palSetPadMode(GPIOB, 13, PAL_MODE_ALTERNATE(5) ); /* New SCK. */
palSetPadMode(GPIOB, 14, PAL_MODE_ALTERNATE(5) ); /* New MISO. */
palSetPadMode(GPIOB, 15, PAL_MODE_ALTERNATE(5) ); /* New MOSI. */
palSetPadMode(GPIOB, 12, PAL_MODE_OUTPUT_PUSHPULL); /* New CS. */
//palSetPad(GPIOB, 12);
palSetPad(GPIOB, 8);
spiStart(&SPID2, &spi2cfg1);
}
static inline void gdisp_lld_reset_pin(bool_t state) {
if (state) {
palSetPad(GPIOB, 8);
} else {
palClearPad(GPIOB, 8);
}
}
static inline void acquire_bus(void) {
spiAcquireBus(&SPID2);
}
static inline void release_bus(void) {
spiReleaseBus(&SPID2);
}
static inline void gdisp_lld_write_index(uint16_t data) {
//palClearPad(GPIOB, 12);
spiSelect(&SPID2);
static uint8_t txbuf[1] = {0};
txbuf[0] = 0x70 | 0x00 | 0x00;
while((SPI2->SR & SPI_SR_TXE) == 0);
spiSend(&SPID2, 1, txbuf);
while(((SPI2->SR & SPI_SR_TXE) == 0) || ((SPI2->SR & SPI_SR_BSY) != 0));
txbuf[0] = data & 0xFF;
while((SPI2->SR & SPI_SR_TXE) == 0);
spiSend(&SPID2, 1, txbuf);
while(((SPI2->SR & SPI_SR_TXE) == 0) || ((SPI2->SR & SPI_SR_BSY) != 0));
//txbuf[0] = data >> 8;
//txbuf[1] = data & 0xFF;
//palSetPad(GPIOB, 12);
spiUnselect(&SPID2);
}
static inline void gdisp_lld_write_data(uint16_t data) {
//palClearPad(GPIOB, 12);
spiSelect(&SPID2);
static uint8_t txbuf[2] = {0};
//txbuf[0] = data;
txbuf[0] = 0x70 | 0x00 | 0x02;
txbuf[1] = 0x70 | 0x00 | 0x02;
while((SPI2->SR & SPI_SR_TXE) == 0);
spiSend(&SPID2, 1, txbuf);
while(((SPI2->SR & SPI_SR_TXE) == 0) || ((SPI2->SR & SPI_SR_BSY) != 0));
txbuf[0] = (data >> 8);
txbuf[1] = (data & 0xFF);
while((SPI2->SR & SPI_SR_TXE) == 0);
spiSend(&SPID2, 2, txbuf);
while(((SPI2->SR & SPI_SR_TXE) == 0) || ((SPI2->SR & SPI_SR_BSY) != 0));
//palSetPad(GPIOB, 12);
spiUnselect(&SPID2);
}
static inline uint16_t gdisp_lld_read_data(void) {
//palClearPad(GPIOB, 12);
spiSelect(&SPID2);
static uint8_t txbuf[1] = {0};
txbuf[0] = 0x70 | 0x01 | 0x02;
while((SPI2->SR & SPI_SR_TXE) == 0);
spiSend(&SPID2, 1, txbuf);
while(((SPI2->SR & SPI_SR_TXE) == 0) || ((SPI2->SR & SPI_SR_BSY) != 0));
static uint8_t rxbuf[3] = {0};
spiReceive(&SPID2, 3, rxbuf);
while(((SPI2->SR & SPI_SR_TXE) == 0) || ((SPI2->SR & SPI_SR_BSY) != 0));
//palSetPad(GPIOB, 12);
spiUnselect(&SPID2);
static uint16_t value = 0;
value = rxbuf[1] << 8 | rxbuf[2];
//test_println((char*)value);
return value;
}
/* if not available, just ignore the argument and return */
static inline uint16_t gdisp_lld_backlight(uint8_t percentage) {
//pwmEnableChannel(&PWMD4, 1, percentage);
}
#endif /* GDISP_LLD_BOARD_H */
/** @} */gfxconf.h
/**
* This file has a different license to the rest of the GFX system.
* You can copy, modify and distribute this file as you see fit.
* You do not need to publish your source modifications to this file.
* The only thing you are not permitted to do is to relicense it
* under a different license.
*/
/**
* Copy this file into your project directory and rename it as gfxconf.h
* Edit your copy to turn on the GFX features you want to use.
*/
#ifndef _GFXCONF_H
#define _GFXCONF_H
#define GFX_USE_OS_CHIBIOS TRUE
/* GFX subsystems to turn on */
#define GFX_USE_GDISP TRUE
#define GFX_USE_TDISP FALSE
#define GFX_USE_GWIN FALSE
#define GFX_USE_GEVENT FALSE
#define GFX_USE_GTIMER FALSE
#define GFX_USE_GINPUT FALSE
#define GFX_USE_GADC FALSE
#define GFX_USE_GAUDIN FALSE
#define GFX_USE_GAUDOUT FALSE
#define GFX_USE_GMISC FALSE
/* Features for the GDISP subsystem */
#define GDISP_NEED_VALIDATION TRUE
#define GDISP_NEED_CLIP TRUE
#define GDISP_NEED_TEXT TRUE
#define GDISP_NEED_CIRCLE TRUE
#define GDISP_NEED_ELLIPSE TRUE
#define GDISP_NEED_ARC FALSE
#define GDISP_NEED_CONVEX_POLYGON FALSE
#define GDISP_NEED_SCROLL FALSE
#define GDISP_NEED_PIXELREAD FALSE
#define GDISP_NEED_CONTROL FALSE
#define GDISP_NEED_QUERY FALSE
#define GDISP_NEED_IMAGE FALSE
#define GDISP_NEED_MULTITHREAD FALSE
#define GDISP_NEED_ASYNC FALSE
#define GDISP_NEED_MSGAPI FALSE
/* GDISP - builtin fonts */
#define GDISP_INCLUDE_FONT_SMALL FALSE
#define GDISP_INCLUDE_FONT_LARGER FALSE
#define GDISP_INCLUDE_FONT_UI1 FALSE
#define GDISP_INCLUDE_FONT_UI2 TRUE
#define GDISP_INCLUDE_FONT_LARGENUMBERS FALSE
/* GDISP image decoders */
#define GDISP_NEED_IMAGE_NATIVE FALSE
#define GDISP_NEED_IMAGE_GIF FALSE
#define GDISP_NEED_IMAGE_BMP FALSE
#define GDISP_NEED_IMAGE_JPG FALSE
#define GDISP_NEED_IMAGE_PNG FALSE
#define GDISP_NEED_IMAGE_ACCOUNTING FALSE
/* Optional image support that can be turned off */
/*
#define GDISP_NEED_IMAGE_BMP_1 TRUE
#define GDISP_NEED_IMAGE_BMP_4 TRUE
#define GDISP_NEED_IMAGE_BMP_4_RLE TRUE
#define GDISP_NEED_IMAGE_BMP_8 TRUE
#define GDISP_NEED_IMAGE_BMP_8_RLE TRUE
#define GDISP_NEED_IMAGE_BMP_16 TRUE
#define GDISP_NEED_IMAGE_BMP_24 TRUE
#define GDISP_NEED_IMAGE_BMP_32 TRUE
*/
/* Features for the TDISP subsystem. */
#define TDISP_NEED_MULTITHREAD FALSE
/* Features for the GWIN subsystem. */
#define GWIN_NEED_BUTTON FALSE
#define GWIN_NEED_CONSOLE FALSE
#define GWIN_NEED_GRAPH FALSE
#define GWIN_NEED_SLIDER FALSE
/* Features for the GEVENT subsystem. */
#define GEVENT_ASSERT_NO_RESOURCE FALSE
/* Features for the GTIMER subsystem. */
/* NONE */
/* Features for the GINPUT subsystem. */
#define GINPUT_NEED_MOUSE FALSE
#define GINPUT_NEED_KEYBOARD FALSE
#define GINPUT_NEED_TOGGLE FALSE
#define GINPUT_NEED_DIAL FALSE
/* Features for the GADC subsystem. */
/* NONE */
/* Features for the GAUDIN subsystem. */
/* NONE */
/* Features for the GAUDOUT subsystem. */
/* NONE */
/* Features for the GMISC subsystem. */
#define GMISC_NEED_ARRAYOPS FALSE
/* Optional Parameters for various subsystems */
/*
#define GDISP_MAX_FONT_HEIGHT 16
#define GEVENT_MAXIMUM_SIZE 32
#define GEVENT_MAX_SOURCE_LISTENERS 32
#define GTIMER_THREAD_WORKAREA_SIZE 512
#define GADC_MAX_LOWSPEED_DEVICES 4
#define GWIN_BUTTON_LAZY_RELEASE FALSE
*/
/* Optional Low Level Driver Definitions */
#define GDISP_USE__BOARD TRUE
#define GDISP_SCREEN_WIDTH 320
#define GDISP_SCREEN_HEIGHT 240
#define GDISP_USE_FSMC
#define GDISP_USE_GPIO
#define TDISP_COLUMNS 16
#define TDISP_ROWS 2
#define GDISP_THREAD_CHIBIOS TRUE
#endif /* _GFXCONF_H */Thanks a lot,
David
Unable to get ILI9320 display driver working on STM32F
in Support
Posted
Hi Tectu,
I am able to get the LCD to display now.
It was a wiring issue.
thanks for the help
David