简体   繁体   中英

Wrong values are displayed on LCD

I'm using Tiva c to drive an LCD but some characters and numbers are wrong displayed, for example, N is displayed as L, 2 and 3 are displayed as 0 but other characters and letters are displayed correctly.

Here is the function that displays characters:

void LCD_voidWriteCharacter(char Character)
{
    SET_BIT(GPIO_PORTA_DATA_R, 7); // RS pin is 1 -> data
    GPIO_PORTB_DATA_R = Character; 
    SET_BIT(GPIO_PORTA_DATA_R, 5); // Enable is high (latch)
    Delay_ms(2);
    CLEAR_BIT(GPIO_PORTA_DATA_R, 5); // Enable is low
}

where could be the problem? sorry for my english

Lets look at what your examples have in common:

'N' == 0100 1110
'L' == 0100 1100

'2' == 0011 0010
'3' == 0011 0011
'0' == 0011 0000

The problem always seems to be 2nd lowest bit.
And sometimes the lowest bit. (in the case of '3' turning into '0' ),

I conclude you have some bad wiring connection near the lowest bits of communication from your board to the LCD screen.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM