PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مشکل uart-lpc2134



Mr_cute
08-04-2012, 18:19
با سلام خدمت دوستان عزيز
من تو برنامه IAR از روي مثال کتاب آقاي سپاس يار يک برنامه براي UART0 نوشتم مثل کتاب يه تابع putchar نوشتم و بعد از دستور printf استفاده کردم. مشکل اينجاست که برنامه compile ميشه build هم ميشه ولي وقتي ميخواد اجرا شه تو قسمت چک کردن شرط تابع putchar ميمونه و بيرون نمياد تابع getchar هم همين مشکل رو داره . لطفا هرکي ميتونه کمک کنه .:(




#include <NXP/iolpc2134.h>
#include <stdio.h>

int putchar (int data);
int getchar (void);

void main (void) {


PINSEL0 = 0x00000005;
U0LCR = 0x83;
U0DLL = 0x34;
U0DLM = 0x00;
U0LCR = 0x03;
while(1) {

printf ( "\r Uart test \n");

}
}


int putchar (int data)
{
while ( !(U0LSR & (1<<5)));
return ( U0THR = data );
}

int getchar (void)
{
while ( !(U0LSR & ( 1<<0)));
return U0RBR ;
}

mzarkoob
08-04-2012, 18:39
سلام
شما در این سایت یا .. سرچ زدی ببینی چه برنامه هایی هست که کارت باهاش را بیوفته؟ ممکنه این برنامه ایراد داشته باشه! ارنباط سریال قبلا راه اندازی شده. نباید مشکل خاصی باشه

sadmonew
08-04-2012, 18:39
سلام مهندس
اين مشكل زماني كه از J-link يا U-link استفاده ميكنيد پيش مياد؟ يا زماني كه از simulation خود نرمافزار استفاده ميكنيد؟
ضمنا شما تو حلقه بينهايت يا همون While از تابع putchar يا getchar اصلا استفاده نكردين.
فقط از دستور Printf براي فرستادن ديتا به خروجي UART0 استفاده كردين.
قاعدتا نبايد اون توابع فراخواني بشن!؟!

Mr_cute
08-04-2012, 18:45
سلام مهندس
اين مشكل زماني كه از J-link يا U-link استفاده ميكنيد پيش مياد؟ يا زماني كه از simulation خود نرمافزار استفاده ميكنيد؟
ضمنا شما تو حلقه بينهايت يا همون While از تابع putchar يا getchar اصلا استفاده نكردين.
فقط از دستور Printf براي فرستادن ديتا به خروجي UART0 استفاده كردين.
قاعدتا نبايد اون توابع فراخواني بشن!؟!

والا اونطوری که تو کتاب توضیح دادن توابع putchar و getchar تو IAR تعریفش به عهده کاربره و وقتی اونارو تعریف میکنی خود printf ازشون استفاده میکنه. من دیباگر سخت افزاری ندارم تو خود نرم افزار IAR و حتی KEIL دیباگ کردم وقتی میرسه به printf وارد تابع putchar میشه و همینطور تو while که برای چک کردنه شرطه میمونه تو proteus هم شبیه سازی میکنم کلا کار نمیکنه . نمیدونم مشکلش چیه واقعا