با سلام
من از برد LPC1786-EWB کویر استفاده می کنم هنگامی که ال سی دی رو راه اندازی می کنم و پورت سریال UART2 ال سی دی درست کار می کنه اما اطلاعات پورت سریال ارسالی نامربوط می باشد وقتی فایل راه انداز ال سی دی رو نگاه کردم دیدم دایما داره دایرکشن و دیتا ی GPIO0 رو که UART2 و0 در اون قرار داره رو تعغییر می ده و عملا به خاطر استفاده از ال سی دی امکان استفاده از این پورت وجود نداره
لطفا اینو ببینید
void LCD_Send (uint16_t byte)
{
unsigned long byte2;
LPC_GPIO2->FIODIR |= 0x000000ff; //P2.0...P2.7 Output
LPC_GPIO2->FIOPIN = byte & 0x00FF; //Write D0..D7
LPC_GPIO0->FIODIR |= 0x07FF8000; //P2.0...P2.7 Output
byte=byte & 0xFF00;
byte2= ( byte << 7);
LPC_GPIO0->FIOPIN &=0xFF807FFF;
LPC_GPIO0->FIOPIN |= byte2 ; //Write D0..D7
wait_delay(10);
}
یا مثلادر قسمت دیگه از فایل راه انداز ال سی دی
static __attribute__((always_inline)) uint16_t LCD_ReadData(void)
{
uint16_t value;
LCD_CS(0);
LPC_GPIO2->FIODIR &= 0xffffff00; //P2.0...P2.7 Input
LPC_GPIO0->FIODIR |= 0xff807FFF; //P2.0...P2.7 Input
wait_delay(50);
LCD_RS(1)
LCD_WR(1)
LCD_RD(0)
// val = lcd_read();
wait_delay(50);
value = LPC_GPIO2->FIOPIN & 0x00ff; //Read D8..D15
value = value|( (LPC_GPIO0->FIOPIN & 0x7F8000) >> 7); //Read D0..D7 0x07FF8000
LCD_RD(1)
wait_delay(50);
LPC_GPIO2->FIODIR |= 0x000000ff; //P2.0...P2.7 Output
LPC_GPIO0->FIODIR |= 0x07FF8000; //P2.0...P2.7 Output
wait_delay(50);
LCD_CS(1);
return value;
}
آیا راه حلی وجود داره؟
تشکر فراوان