كتابخونه اي كه تو برنامه بود واس 9325 بود ، در ضمن ، ازكجا بايد شماره چيپ ال سي دي رو تشخيص بدم ؟
يه سوال ديگه ، اگه چيپ ال سي ديم 9320 بود ، مقاديري كه بايد تغيير بدم رو از كجا بايد بگيرم ؟!
تشكر
بعد از چند وقت برگشتم
ببین این به کارت میاد ؟ازكجا بايد شماره چيپ ال سي دي رو تشخيص بدم ؟
تو این لینک مشخصات السیدی با چیپ درایوش و اینچش رو نوشته
ویرایش توسط Doloop : 14-08-2012 در ساعت 16:07
*** اللّهم عجّل لولیک الفرج ***
با سلام
دوستان یه RTOS مربوط به شرکت SEGGER هست با نام emwin که عملکردی شبیه uc/gui خودمون داره و سیستم عامل جالبی هست.اینو برای میکروی stm32f407vgt6 پورت کردن که همون میکروی discovery هست.اینجا قرار می دم دوستانی که به این برد دسترسی دارن یه تست بکنن ببینیم سرعت اجرای تسک های این سیستم عامل و خودش به چه شکلی هست.فقط نمی دونم نوع ال سی دی به کار رفته چیه؟(که احتمال می دم همون ili9325 خودمون باشه) کانفیگ پایه های lcd هم داخل سورس مشخصه.
کامپایلر:keil 4.54
دانلود:
http://wdl.persiangig.com/pages/down....com/emwin.rar
ویرایش توسط pooriya : 14-08-2012 در ساعت 16:18
void GLCD_Init(void)
....
if(lcdid == 0x9320)
...
else if(lcdid == 0x9325)
...
else if(lcdid==0x4531)
...
}else if(lcdid==0xb505)
...
فردا اونقد جرات داشتم برم مغازه ، به برد همه چیز وصله تست می کنم
واسه خوندن شماره چیپ lcd باید از دستورات خواندنی lcd استفاده کنین و مقدار 0x00 رو به lcd بفرستین این دستور تقریبا توی همه lcdهای چینی مشترک هست،ونتیجه رو روی پورت سریال مشاهده کنین فقط دقت داشته باشین که نتیجه رو به هگز ببینین.برای این کار هم باید پایه RD رو صفر کنین و پورت میکرو رو در حالت ورودی قرار بدین.
مثلا من خودم یکسری lcd خریدم که شماره اش hx8325 بود.واسه اینکه بدونین چه تغییراتی باید بدین هم باید کاتالوگ درایور lcd رو مطالعه کنین و معمولا هم یه جدول داره که توی اون جدول آدرس رجیسترها رو داده.
uint16_t tftlcd_readData(void)
{
uint16_t gRamData;
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;
GPIO_Init(LCD_DataPort, &GPIO_InitStructure);
LCD_CS(0);
LCD_RS(1);
LCD_RD(0);
LCD_WR(1);
gRamData = GPIO_ReadInputData(LCD_DataPort);
LCD_RD(1);
LCD_CS(1);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
return gRamData;
}
uint16_t tftlcd_readIndex(uint16_t cmd)
{
LCD_CS(0);
LCD_RS(0);
LCD_RD(0);
LCD_WR(1);
GPIO_Write(LCD_DataPort, cmd);
LCD_RD(1);
LCD_CS(1);
// return 0; //!
}
static __inline uint16_t tftlcd_readReg(uint16_t cmd)
{
tftlcd_readIndex(cmd);
delay_ms(100);
return tftlcd_readData();
}
int main(){
char str[10];
sprintf(str,"0x%x\r\n",tftlcd_readReg(0x00));
usrat_puts(str);
}
ویرایش توسط alisaeed : 15-08-2012 در ساعت 01:53
دوستان شما از چه user manual ی برا STM32F407 استفاده میکنین؟
آدرسش بدین دانلود کنم.
خدمت شما فقط 1400 صفحه هستش
http://www.st.com/internet/com/TECHN...DM00031020.pdf
سلام
ساده بگم ، cmsis يه سري كتابخونه جدا هستند كه مخصوص سري كرتكش هستند و براي هر ميكرو شركت توليد كننده براي دانلود قرار ميده
تو اين كتابخونه ها يه سري توابع آماده وجود داره كه طبق نياز بعضي هاشون چندتا آرگومان ورودي داره يا بعضي هاشون مقدار برگشتي دارند.
كار با اين پارامتر ها بسيار بسيار ساده تر از كار با رجيستر ها هست براي مثال يكي از اون توابع كه تو قسمت تايمر هستش رو اينجا ميزارم و يه توضيحي در موردش ميدم
اول هركدوم از اين توابع يه سري كامنت هايي هست كه در مورد اين تابع و پارامتر هاش توضيح ميدهکد:/** * @brief Sets the TIMx Counter Register value * @param TIMx: where x can be 1 to 14 to select the TIM peripheral. * @param Counter: specifies the Counter register new value. * @retval None */ void TIM_SetCounter(TIM_TypeDef* TIMx, uint32_t Counter) { /* Check the parameters */ assert_param(IS_TIM_ALL_PERIPH(TIMx)); /* Set the Counter Register value */ TIMx->CNT = Counter; }
براي اين تابعي كه گذاشتم مثلا گفته :
تنظيم كردن مقدار رجيستر شمارنده تايمر/كانتر
بعدش اومده پارامترهاشو توضيح داده و اينكه چه مقاديري ميتونند داشته باشند
البته مطالب كامل مربوط به قسمت اول تايمر/كانتر رو فردا تو تاپيك مربوط بهش قرار ميدم
شما با خوندن مطالبي كه ميزارم و مقايسش با فايل اصلي ميبينيد كه دقيقا همون كارايي كه گفته رو من اومدم ترجمش كردم.پس اگه يكم زبان انگيليسي شما خوب باشه ، هيچ مشكلي نخواهيد داشت
بعد از چند وقت برگشتم
user manual که تعداد صفحاتش کمتره همونه که صفحه اول عکس بورد دیسکاوری رو گذاشته !
1400 صفحه ای هم reference manual هست که داخلش رجیستر هارو گفته
دادا شایان همچنان منتظر جواب کار شما هستیم
*** اللّهم عجّل لولیک الفرج ***
به نظر من خوندن رفرنس و اون چند تا pdf برای برد دیسکاوری بی فایده نیست یعنی خوندنش ضرر نداره.
ولی دوستان از بعد ماه رمضونی دوباره شروع کنیم و بخش های این میکرو را باهم راه بیندازیم.
سلام دوستان
كتابخونه اي كه براي 9325 بود رو تغيير دادم براي 9320 ، الآن رو ال سي ديم يه چيزهايي نشون ميده ، اما مشكل هاي زير رو داره
عكس هايي كه نشون ميدم mirror هستند
رنگ ها به هم ريخته ، اول كه تو قسمت متن تست كرده بودم ، رنگ ها بر عكس شده بود كه با نات كردن مقدارشون ، درست شد . الآن رنگ عكس هم همينطور شده ، بايد اينم نات بكنم يا راه ديگه اي داره ؟!
يكي 2 تا مشكل ديگه هم هست كه بعد از حل شدن اينا ميگم
منظرم دوستان
با تشكر
بعد از چند وقت برگشتم
سلام
كسي با اين برد ال سي دي كاراكتري رو راه انداخته ؟!
بعد از چند وقت برگشتم
سلام
فکر می کنم با یه تغییر ساده بشه این برنامه قبلی را که خودتون قرار دادید را درست کرد:
ایـــــــــران میـــــــکرو ™ - مشاهده یک موضوع - نحوه اتصالlcd کاراکتری 16*2 به میکرو
یا این :
ایـــــــــران میـــــــکرو ™ - مشاهده یک موضوع - لایبری های نوشته شده برای 1768
فقط باید مقدار delay را هم زیاد تر کرد
هر كاري كردم نشد ! حتي لايبري سري f103 كه خيلي شبيه اين ميكرو هست و تغييرات خيلي جزئي ميخواد رو خواستم استفاده كنم نشد !
چندتا هدر ديگه هم گرفتم و دستكاري كردم ، بازم نشد )):
بعد از چند وقت برگشتم